EF和Linq to Sql的區別
實 體框架 是 * 中的一組支持開發面向數據的軟件應用程序的技術。面向數據的應用程序的架構師和開發人員曾為實現兩個迥然不同的目標費盡心機:他們必須為要解決的業務問題 的實體、關系和邏輯構建模型,還必須處理用于存儲和檢索數據的數據引擎。數據可能跨多個各有不同協議的存儲系統;甚至使用單個存儲系統的應用程序也必須在 存儲系統的要求與編寫高效且容易維護的應用程序代碼之間取得平衡。
實體框架 使開發人員可以采用特定于域的對象和屬性(如客戶和客戶地址)的形式使用數據,而不必自己考慮存儲這些數據的基礎數據庫表和列。通過提升開發人員在處理數 據時可以使用的抽象級別并減少創建和維護面向數據的應用程序所需的代碼,可以實現這一目的。因為 實體框架 是 .NET Framework 的一個組件,所以 實體框架 應用程序可以在安裝了 .NET Framework 3.5 Service Pack 1 (SP1) 的任何計算機上運行
SQL語句轉換為EF語句
對你的情況模擬了一下,如下代碼,result 是你要的結果,希望對你有幫助。
List<SupportLog> SupportLog = new List<SupportLog>() {
new SupportLog(){ Id=1,ActivityId=1, OpenId=1, CreateTime=new DateTime(2015,4,19)},
new SupportLog(){ Id=2,ActivityId=2, OpenId=1, CreateTime=new DateTime(2015,4,13)},
new SupportLog(){ Id=3,ActivityId=1, OpenId=111, CreateTime=new DateTime(2015,4,14)},
new SupportLog(){ Id=4,ActivityId=1, OpenId=111, CreateTime=new DateTime(2015,4,14)},
new SupportLog(){ Id=5,ActivityId=1, OpenId=111, CreateTime=new DateTime(2015,4,16)}
};
List<mb_Activity> mb_Activity = new List<mb_Activity>() {
new mb_Activity(){ ActivityId=1,OpenId=1},
new mb_Activity(){ ActivityId=2,OpenId=111},
new mb_Activity(){ ActivityId=3,OpenId=134},
new mb_Activity(){ ActivityId=4,OpenId=12345},
new mb_Activity(){ ActivityId=5,OpenId=22},
};
var result = mb_*(s => new
{
*tyId,
*,
Count = *(w => * == * && *Time > new DateTime(2015, 4, 13)).Count()
});
c#用 ef怎么執行sql語句
EF model first方式, 你的DB是繼承ObjectContext using (MyObjectContext db = new MyObjectContext() ){ string sql = “ select columnA, columnB from TableA where 1 = 1 ”; *eStoreQuery
c#用 ef怎么執行sql語句
EF model first方式, 你的DB是繼承ObjectContext
using (MyObjectContext db = new MyObjectContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
*eStoreQuery(sql).ToList();//TableAObject就是你定義的對象,對象屬性就是columnA, columnB
} code first, 你的db是繼承DbContext
using (MyDbContext db = new MyDbContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
*ry(sql).ToList();//TableAObject就是在MyDbContext 定義的對象
}
這里只是列舉查詢的方式,僅供參考,一般新增 刪除 或者修改 用對象的方式比較多,如果是sql,一般是
*eSqlCommand(sqlString)
會Linq To EF的進來看看,一個EF框架下的模糊查詢
//using *ent;
private void btnLike_Click(object sender, EventArgs e)
{
NorthwindEntities en = new NorthwindEntities();
var v = *(x =>
*ex("%a%e%", *ame) > 0);
//翻譯成sql語句是
//WHERE ( CAST(PATINDEX(N'%a%e%', *ame) AS int)) > 0
*urce = *();
}
ef使用sql語句查詢單個數據,比如我要查詢某表里面的某一個值,該怎
declare
varchar temp(10)
select @temp=z from DB:A where 。
if(@temp==1)
select * from DB:B where。
else if(@temp==2)
select * from DB:C where。
else if(@temp==3)
select * from DB:D where。
這個思路應該是這樣的,你自己把代碼補充完整,數據類型定好,希望能幫到你
如何在EF中直接運行SQL命令
現在有了EF4.1,API的名字又有了些許改變。
如果說DbContext將ObjectContext做了包裝,那么*se就是對應于數據庫端信息的封裝。執行SQL命令也自然從Database類型開始。
對應于ExecuteStoreCommand和ExecuteStoreQuery
如何查看EF 生成的sql語句
添加 引用:
using *s;
var results = *_*(s => * == 2160);
var sql = (results as ObjectQuery).ToTraceString();
在EF4.1中,可以直接 使用 ToString()
using (var context = new MyDbContext())
{
var people = from p in *
where *ID > 100
select p;
string sql = *ng();
}