2015-11-15 31 views
0

我正在創建此項目,希望能夠節省少數人浪費的時間,或者在我的情況下是星期六。ObjectContext with Entity Framework 6在現有相關實體上插入重複項

的問題如下:

我的主要實體,在這種情況下,並在通過驗證被稱爲情況下,我會保存到對象上下文,像這樣

context.AddToCases(caseModel); 
context.SaveChanges(); 

的問題是,一個案件發生了相關事件。我添加名爲事件情境感知的項目,我是通過上下文,像這樣

caseModel.Incident = context.Incidents.SingleOrDefault(i => i.IncidentNumber == jumpIncidentNumber); 

由於代碼跑了,我看得出來,model.Incident有一個的EntityKey,不得不添加的狀態,查找和重複正在添加。不僅如此,保存後的結論參考是新創建的記錄。

我認爲我馬上知道答案,我只是需要通過運行事件模型預先安裝像這樣

context.Attach(incident); 
caseModel.Incident = incident; 

錯誤。儘管它的EntityState保持不變,但它仍然輸入重複。除此之外,最終的參考是原始事件,不再是重複事件。

回答

0

的解決方案是投進去,並完全覆蓋的ObjectContext用的DbContext像這樣

if (model.Incident != null) 
{ 
    DbContext dbContext = new DbContext(context, true); 
    dbContext.Entry(model.Incident).State = EntityState.Unchanged; 
} 

儘管這起事件實體有不變的EntityState,ObjectContext的仍然認定它爲新的。 DBContext似乎有更多的狀態意識。

我希望這可以幫助別人。

相關問題