怎么采用EntityFramework.Extended 對(duì)EF進(jìn)行擴(kuò)展,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到阿巴嘎網(wǎng)站設(shè)計(jì)與阿巴嘎網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋阿巴嘎地區(qū)。
前言
今天我們來(lái)講講EntityFramework.Extended
首先科普一下這個(gè)EntityFramework.Extended是什么,如下:
這是一個(gè)對(duì)Entity Framework進(jìn)行擴(kuò)展的類庫(kù).
完全支持EF 5.0/6.0+,
GitHub地址 https://github.com/loresoft/EntityFramework.Extended,
最后一次更新是在2015/07/10
這個(gè)庫(kù)支持批量更新,刪除。查詢結(jié)果緩存和審計(jì)日志。
這個(gè)擴(kuò)展對(duì)于每次批量操縱只生成一條sql語(yǔ)句,而不會(huì)像EntityFramework供給的原生辦法那樣批量N條數(shù)據(jù)就要生成N條sql語(yǔ)句
采用的環(huán)境與技術(shù)
系統(tǒng):WIN7
數(shù)據(jù)庫(kù):SQL Server2008
相關(guān)技術(shù):MVC5+EF6.1.3+EntityFramework.Extended6.0
第一章:批量操作數(shù)據(jù)庫(kù)
批量刪除:
//記得引用using EntityFramework.Extensions;//這兩種寫法都可以,Context是你的EF上下文對(duì)象.context.LogData.Delete(a => a.EntityKey == "aa"); context.LogData.Where(a => a.EntityKey == "aa").Delete();
批量更新:
//data為修改的行數(shù)int data =context.LogData.Where(a=>a.EntityKey=="aa").Update(b=> new LogData { EntityName = "ss" });//第二種寫法,這種是針對(duì)DbSet的,已經(jīng)標(biāo)注過(guò)時(shí)了 var data = context.LogData.Update(a => a.EntityKey == "aa",b=> new LogData { EntityName = "ss" });
批量增加:
//這個(gè)和Extended無(wú)關(guān)..EF本身就自帶了,單純的給新手一個(gè)實(shí)例而已,大神無(wú)視..int data= context.LogData.AddRange(new List());
第二章:批量查詢數(shù)據(jù)庫(kù)
原理是這樣的:
E文原文:
Future queries work by creating the appropriate IFutureQuery object that keeps the IQuerable. The IFutureQuery object is then stored in IFutureContext.FutureQueries list. Then, when one of the IFutureQuery objects is enumerated, it calls back to IFutureContext.ExecuteFutureQueries() via the LoadAction delegate. ExecuteFutureQueries builds a batch query from all the stored IFutureQuery objects. Finally, all the IFutureQuery objects are updated with the results from the query.
小編的辣雞二流子翻譯:
Future 會(huì)根據(jù)IQuerable創(chuàng)建出他自定義的IFutureQuery對(duì)象,然后將他加入到IFutureContext.FutureQueries查詢隊(duì)列當(dāng)中,當(dāng)隊(duì)列中的一個(gè)對(duì)象調(diào)用LoadAction那么就會(huì)執(zhí)行IFutureContext.ExecuteFutureQueries()方法, ExecuteFutureQueries 會(huì)構(gòu)建一個(gè)批處理查詢的IFutureQuery,最后將所有IFutureQuery的查詢結(jié)果進(jìn)行更新(也就是查詢).
第三章:EF的數(shù)據(jù)審計(jì)日志
數(shù)據(jù)審計(jì)日志:
先說(shuō)一下這個(gè)審計(jì)的概念,就是對(duì)所有的實(shí)體的操作(增,刪,改)進(jìn)行監(jiān)控.
這是他追蹤到的信息,我們可以很方便的把這些信息存入數(shù)據(jù)庫(kù)或者你的日志存儲(chǔ)里(文本,XML,緩存)都行 隨你.
下面我們開(kāi)始講解用法:
首先我們可以在應(yīng)用程序的入口( Application_Start)配置(我這里以MVC的Web應(yīng)用來(lái)舉例):
這里的配置可不加,用默認(rèn)的也行。
關(guān)于怎么采用EntityFramework.Extended 對(duì)EF進(jìn)行擴(kuò)展問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。