• Entity Framework框架 (二)


    一、前面一篇EF的介绍主要是通过linq语句,本篇主要是介绍一下不通过linq语句如何去操作EF执行查询sql语句与执行存储过程。

    1.  其中的Acccout是输出参数对应的类。比如输出参数有三个值,分别是id,name,age,那么我们就需要定义一个可以存放三个列的类。  并且其中P=>ture 是匿名函数,去查询出当前中所有的。其中的list是相当于一条查询语句。

    2 . 介绍一些常用的查询。不加OrDefault如果有多列,会抛出异常。

    3. 介绍EF 操作SQL语句,先构建一个上下文。

    1 using (var cfc = new wangjin2Entities1())
    2             {                   //其中Userinfo是指一个类
    3                 var acccount = cfc.Userinfo.SqlQuery("select * from Userinfo");
    4             }

    4. 介绍EF操作存储过程。其中now指0,ture指1

    5. MVC项目中EF操作SQL示例2:首先定义一个方法

     /// <summary>
            /// 执行删除,插入,修改
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="pars"></param>
            /// <returns></returns>
           public int ExecuteSql(string sql, params SqlParameter[] pars)
           {
               //调用EF操作类的database下的ExecuteSqlCommand方法,该方法,需要传递SQL语句和参数
              return Db.Database.ExecuteSqlCommand(sql,pars);
           }
            /// <summary>
            /// 有参数的查询
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="pars"></param>
            /// <returns></returns>
           public List<T> ExecuteQuery<T>(string sql, params SqlParameter[] pars)
           {
               return Db.Database.SqlQuery<T>(sql,pars).ToList();
           }

    调用方法:

    /// <summary>
           /// 将统计的明细表的数据插入。
           /// </summary>
           /// <returns></returns>
            public bool InsertKeyWordsRank()
            {
                string sql = "insert into KeyWordsRank(Id,KeyWords,SearchCount) select newid(),KeyWords,count(*)  from SearchDetails where DateDiff(day,SearchDetails.SearchDateTime,getdate())<=7 group by SearchDetails.KeyWords";
                return this.CurrentDBSession.ExecuteSql(sql)>0;
            }
           /// <summary>
           /// 删除汇总中的数据。
           /// </summary>
           /// <returns></returns>
            public bool DeleteAllKeyWordsRank()
            {
                // 删除表中所有的数据
                string sql = "truncate table KeyWordsRank";
               return this.CurrentDBSession.ExecuteSql(sql)>0;
            }
           /// <summary>
           /// 有参数的查询
           /// </summary>
           /// <param name="term"></param>
           /// <returns></returns>
            public List<string> GetSearchMsg(string term)
            {
               //KeyWords like term%
                string sql = "select KeyWords from KeyWordsRank where KeyWords like @term";
               return this.CurrentDBSession.ExecuteQuery<string>(sql, new SqlParameter("@term",term+"%" ));
            }

    嗯,大致就这么多,谢谢学习。

     https://www.cnblogs.com/wangjinya/

  • 相关阅读:
    初识TPOT:一个基于Python的自动化机器学习开发工具
    为你的机器学习模型创建API服务
    iview 表格的多选框如何默认选中某项
    在uni-app中使用阿里巴巴图标库字体图标
    uni-app添加自定义底部导航栏,实现根据权限动态切换底部栏目的功能
    iview表格点击整行都可行切换前面的单选按钮或者多选按钮的状态
    uni-app引入vconsole调试移动端项目
    vue+view中的折叠面板点击表头阻止面板的收缩事件
    vue项目中判断文字内容超出n行显示详情按钮
    uni-app给顶部导航栏添加自定义字体图标
  • 原文地址:https://www.cnblogs.com/wangjinya/p/10662023.html
Copyright © 2020-2023  润新知