一、前面一篇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/