不知道我是否误解了EF Code的工作原理或设置错误。我创建了一个有很多ChartResults的图表POCO。简单一对多。我可以先用EF代码关闭此链接行为吗?
当我做
Chart myChart = new Chart();
myChart.ChartResults.Add(new ChartResult(){Pos=1});
myChart.ChartResults.Add(new ChartResult(){Pos=2});
context.Charts.Add(myChart);
context.Save();
我得到一个图表添加,然后眼泪通过所有的图表结果,并补充说,到数据库了。这非常巧妙,但是问题出在chartResults上,有时我想添加,有时候我想简单地更新引用。但我怎么做到这一点没有:
1) going through each Chart and adding it to a new object that is unlinked
2) then going through each ChartResult and explicitely deciding what to do/not do?
您不必将myChart添加到上下文中,也不必立即保存它。这允许您以任何您想要的方式操作POCO,直到准备好写入数据库为止。但是,在上面的示例中,EF正在按照您的要求进行操作。 –
@HughJones图表实例在某些时候需要添加到上下文中,如果要将这些更改提交到数据库,则需要调用SaveChanges()。 –
@Jason - 当然,但如果你想操纵POCOs,你可以推迟分贝写,直到你准备好了。这是我的观点。 –