這篇文章主要為大家展示了“Entity Framework 7中的影子屬性怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Entity Framework 7中的影子屬性怎么用”這篇文章吧。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括云和網(wǎng)站建設(shè)、云和網(wǎng)站制作、云和網(wǎng)頁(yè)制作以及云和網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,云和網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到云和省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
影子屬性是類本身中并不存在,但Entity Framework卻認(rèn)為存在的字段。它們能夠參與查詢、創(chuàng)建/更新操作和數(shù)據(jù)庫(kù)遷移。微軟認(rèn)為影子屬性有兩個(gè)主要的應(yīng)用場(chǎng)景:
允許數(shù)據(jù)訪問(wèn)層訪問(wèn)那些不該由領(lǐng)域模型暴露到應(yīng)用其它部分的屬性
允許開發(fā)者高效地添加屬性到?jīng)]有源代碼的類中
影子屬性在OnModelCreating事件中被定義,該事件在DBContext中為可重載方法。這里有一個(gè)綁定DataTime屬性LastUpdated到Blog實(shí)體的例子。
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().Property("LastUpdated"); }
這個(gè)屬性的一個(gè)通用用例是在執(zhí)行保存操作時(shí)自動(dòng)賦值給LastUpdated屬性。為此,你可以使用DBContext.ChangeTracker來(lái)獲取DBEntry類型的對(duì)象列表。你可以這樣寫:
foreach (var item in modifiedEntries) { Item.Property("LastModified").CurrentValue = DateTime.Now; }
一般可以通過(guò)重載DBContext類的SaveChanges()方法實(shí)現(xiàn)。通過(guò)這里的重載,你可以更新所有需要更新的數(shù)據(jù),而又不必在每一個(gè)更新數(shù)據(jù)的地方重復(fù)代碼。
當(dāng)ChangeTracker適合用于修改保存事件的時(shí)候,你會(huì)很想繞過(guò)DBEntry直接訪問(wèn)影子屬性。通過(guò)EF.Property函數(shù)就可以做到,如下所示:
EF.Property(entity, "LastModified")
這個(gè)表達(dá)式放在一個(gè)查詢中能生成服務(wù)器端的WHERE和ORDER BY子句。
以上是“Entity Framework 7中的影子屬性怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞名稱:EntityFramework7中的影子屬性怎么用
文章地址:http://vcdvsql.cn/article32/gjscpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)
聲明:本網(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)