[英]ObjectStateEntry.GetModifiedProperties returns empty list
我正在使用以下測試代碼:
var dataEntry = dbContext.DataEntries.Where(de => de.ID == 1).Single(); dataEntry.myBooleanProp = !dataEntry.myBooleanProp; var dataEntryObjectStateEntry = ((IObjectContextAdapter)mapi.db) .ObjectContext .ObjectStateManager .GetObjectStateEntry(dataEntry); var modifiedProps = dataEntryObjectStateEntry.GetModifiedProperties();
現在我會考慮,我的myBooleanProp
屬性將是modifiedProps
列表的一部分。 但是,列表的長度為 0。但是為什么呢?
PS:
dataEntryObjectStateEntry.OriginalValues["myBooleanProp"]
和dataEntryObjectStateEntry.CurrentValues["myBooleanProp"]
每個都包含正確的值。
我找到了解決方案。 在我的場景中,需要調用dbContext.ChangeTracker.DetectChanges();
預先。 只有在那之后,實體框架才真正為所有實體設置“修改”標志。 這就是GetModifiedProperties()
方法工作所需要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.