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