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/

原文地址:https://www.cnblogs.com/wangjinya/p/10662023.html