[英]Conditional mapping using GraphDiff
我在保存一些數據時遇到了GraphDiff的問題,我只需要一些就可以確認是否可行。
我將提供一個示例,說明發生了什么:
首先,我正在使用VS2017(最新版本)EF 6,Automapper和GraphDiff。
我有一個包含以下數據的表。
如您所見,它列出了ParcelId為5023的數據,唯一的區別是IsAcquired和IsCurrent標志。
由於復雜,我不會進入將IsCurrent標志設置為true來更新數據的代碼,但從本質上講,屏幕允許用戶輸入值,保存時會將第二個列表中的記錄從IsCurrent設置為False。並插入三個具有新值且IsCurrent設置為True的新記錄。 這使我們能夠撤消這些記錄。
現在,我有一個不同的屏幕,使您可以編輯主數據,或者換句話說,來自第一個網格的數據。
這是使用GrphDiff更新數據。 此編輯不會恢復第二個網格中的數據,但是在保存GraphDiff操作時會看到該數據不同並被覆蓋。
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight);
我需要它來忽略IsCurrent等於true的記錄,並且僅更新IsAcquired = true的記錄。
我試過了:
dbContext.UpdateGraph(a,map=>map.OwnedCollection(x => x.ParcelRight
.Where(r => r.IsAcquired == true).ToList());
但它沒有用。
我發現以下暗示它無法完成的事情。
多虧了所有這些內容,但看起來這可能導致GraphDiff問題,因此我已更改此更新的代碼,以使用更傳統的Linq to Entites解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.