EF 執行SQL語句
阿新 • • 發佈:2018-11-06
很多時候,Linq表示式不能很好的滿足對庫表的查詢、操作,所以不得已還得用到SQL語句去執行。
1、新增、更新、刪除
呼叫的是ExecuteSqlCommand(SQL語句)方法
1 string sqlstr=string.Format("update T_表名 set Name = {0}, Age = {1}","ccx",18); 2 Context.Database.ExecuteSqlCommand(sqlstr);
2、查詢
呼叫的是SqlQuery<型別>(SQL語句)方法
1 string queryPoint = string.Format("geometry::STGeomFromText('POINT({0} {1})',0)", lng, lat); 2 string sqlStr = string.Format("select * from T_LeisureTourism where LT_Geo.STDistance({0})<={1}", queryPoint, ConvertUtils.kmTOmi(Km).ToString()); 3 var query = context.Database.SqlQuery<T_LeisureTourism>(sqlStr);
這邊返回值是 DbRawSqlQuery<T> 型別,也是實現了 IEnumerable 介面,即:可以用去當做List<T>去做進一步查詢
3、統計查詢
類似ExecuteScalar方法
1 string sqlstr = "select count(*) from T_表名"; 2 int num = context.Database.SqlQuery<int>(sqlstr).SingleOrDefault();