EF
創(chuàng)新互聯(lián)建站基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專(zhuān)業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性?xún)r(jià)比高,為金融證券行業(yè)光華機(jī)房服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專(zhuān)業(yè)成都idc公司。
model
first方式,
你的DB是繼承ObjectContext
using (MyObjectContext db = new MyObjectContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.ExecuteStoreQuery
(sql).ToList();//TableAObject就是你定義的對(duì)象,對(duì)象屬性就是columnA, columnB
} code
first,
你的db是繼承DbContext
using (MyDbContext db = new MyDbContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.TableAObject.SqlQuery(sql).ToList();//TableAObject就是在MyDbContext 定義的對(duì)象
}
這里只是列舉查詢(xún)的方式,僅供參考,一般新增
刪除
或者修改
用對(duì)象的方式比較多,如果是sql,一般是
db.Database.ExecuteSqlCommand(sqlString)
using (MyObjectContext db = new MyObjectContext() ){ string sql = “ select columnA, columnB from TableA where 1 = 1 ”; db.ExecuteStoreQueryTableAObject(sql).ToList();//TableAObject就是你定義的對(duì)象,對(duì)象屬性就是columnA, columnB}
性能上,自然是ef要低些。這是毫無(wú)疑問(wèn)的。but,你覺(jué)得這點(diǎn)性能損耗和帶來(lái)的方便快捷那個(gè)更重要,就像二八原則
我不是大神,但是你這個(gè)問(wèn)題我有點(diǎn)思路,從MSDN()上可以看到影響EF性能的因素
第二種很快是因?yàn)閐bcontext沒(méi)有追蹤你執(zhí)行查詢(xún)的結(jié)果(dbconext.Database.SqlQueryint("select count(*) from table")),你對(duì)這個(gè)結(jié)果附加where條件是不會(huì)加到EF生成的SQL語(yǔ)句上的
所以對(duì)于第一種情況,你可以使用NoTracking(dbconext.table.AsNoTracking().Count())來(lái)取消EF對(duì)結(jié)果的追蹤
具體的區(qū)別你可以參考:
和:
分享題目:efnosql的簡(jiǎn)單介紹
網(wǎng)站網(wǎng)址:http://muchs.cn/article28/phgccp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、Google、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)