父表中的记录已成功保存但子表记录未保存且未发生错误,使用具有可用存储库模式的实体框架here。
下面是我的表格的示例架构设计,可能是一个特例。
如果我尝试在Table2和Table3中插入记录,请考虑上面的表格,没有记录插入到表3中。
如果需要进一步澄清这个问题,请告诉我。
提前致谢!!
编辑1
以下是我用来插入父记录和子记录的代码。
var parent = new Table2()
{
Table1Id = 1,
SecondColumn = 1
};
parent.Tables3.Add(new Table3()
{
Table1Id = 1,
SecondColumn = 1,
AnotherColumn = 1
});
context.Set<Table2>().Attach(parent);
context.Entry<Table2>(parent).State = EntityState.Added;
context.SaveChanges();
编辑2
public partial class Table2
{
public Table2()
{
this.Tables3 = new HashSet<Table3>();
}
public int Table1Id { get; set; }
public int SecondColumn { get; set; }
public virtual ICollection<Table3> Tables3 { get; set; }
}
public partial class Table3
{
public int Table1Id { get; set; }
public int SecondColumn { get; set; }
public int AnotherColumn { get; set; }
}
答案 0 :(得分:1)
你应该做两件事之一:
使用add而不是attach
var parent = new Table2()
{
Table1Id = 1,
SecondColumn = 1
};
parent.Tables3.Add(new Table3()
{
Table1Id = 1,
SecondColumn = 1,
AnotherColumn = 1
});
context.Set<Table2>().Add(parent);
context.SaveChanges();
在这种情况下,还将添加所有导航属性。