我有一個實體,它的主關鍵字int設置爲storegeneratedpattern = none,因此我們提供了id客戶端。具有storegeneratedpattern = none的實體框架4實體在保存時不會更新外鍵
此實體具有子實體,通過與導航和外鍵id的關聯引用它。
如果我創建一個新的父實體並添加一個子實體,然後設置父實體的主鍵並保存,那麼子實體的外鍵修復發生在保存之後並且不會持久化到數據庫。
如
engine = new Engine();
part = new Part();
engine.Parts.Add(part);
engine.Id = 6;
engineRepository.Save(engine);
的保存很簡單
Context.Engines.AddObject(entity);
Context.SaveChanges();
保存後 「部分」 將有一個外鍵 「ENGINEID」= 6,但在數據庫中這將是 「ENGINEID」 = 0,即看起來修復發生在保存之後。
我在這裏錯過了什麼?如果引擎的存儲生成模式是身份認證,則一切正常。
這是一種可能性,但它意味着整個汽車修復EF的好處被否定。實際上,我們有一個巨大的圖表,必須走整個過程來設置所有適當的ID。我提供了我們最終在下面使用的答案。 –