0
我使用EF7,我有三個實體:EF7值未保存
class A {
public int Id;
public B B;
}
class B {
public int Id;
public string SomeValue;
public virtual IEnumerable<C> C;
}
public class C {
public int Id;
public string SomeValue;
public virtual B B;
}
自動生成的遷移似乎罰款,以及一個外鍵從下加入B. 然而,當我這樣做,沒有值被分配給數據庫中的外鍵:
var a = _dbContext.A.Single(x => x.Id == id);
a.B = new B {
SomeValue = "SomeValue";
C = listOfC;
};
_dbContext.SaveChanges();
C的實際值存儲在相應的表格,但隨着外鍵不保存我再也無法找回相對於B.
EF7無法正確執行嵌套插入?有什麼辦法可以解決這個問題嗎?
編輯: 顯式聲明外鍵使其不能爲空,這意味着插入失敗(「壞外鍵約束」)。
請更新您的例子包括類的實際性能,從你的定義沒有ID定義,也無法爲外鍵的值Id, –
對不起。你是沒有這個實體的外鍵的屬性--EF自動生成這個。我曾嘗試明確地在實體中聲明它,但是這絕對沒有改變。 – severin
好吧,這不是絕對正確的,顯式聲明外鍵使其不能爲空,這意味着插入失敗,因爲數據庫抱怨外鍵的缺失值。 – severin