[英]ObjectContext with Entity Framework 6 inserting duplicates on existing related entities
我創建此程序的目的是希望節省一些人的時間,或者在我的情況下為星期六。
問題如下:
在這種情況下,我的主要實體稱為case,通過驗證后,我將保存到對象上下文中,如下所示
context.AddToCases(caseModel);
context.SaveChanges();
問題在於案件有相關事件。 我添加了一個名為event的上下文相關項,通過這樣的上下文進行查找
caseModel.Incident = context.Incidents.SingleOrDefault(i => i.IncidentNumber == jumpIncidentNumber);
當代碼運行時,我可以看到該模型。事件具有EntityKey並具有添加狀態,並且正在添加重復項。 不僅如此,保存后的結論引用是對新創建的記錄的引用。
我以為我立刻知道了答案,我只需要像這樣事先通過Attach運行事件模型即可
context.Attach(incident);
caseModel.Incident = incident;
錯誤。 盡管它的EntityState不變,但仍輸入了重復項。 除非這次,引用的結果是原始事件,不再是重復的事件。
解決方案是使用這樣的DBContext強制轉換並覆蓋ObjectContext。
if (model.Incident != null)
{
DbContext dbContext = new DbContext(context, true);
dbContext.Entry(model.Incident).State = EntityState.Unchanged;
}
盡管事件實體的EntityState保持不變,但ObjectContext仍將其識別為新的。 DBContext似乎更了解狀態。
我希望這可以幫助別人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.