0

不确定我是否误解了 EF 代码首先如何工作或设置错误。我创建了一个包含许多 ChartResults 的图表 POCO。简单的一对多。

当我做

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?
4

1 回答 1

0

如果您知道chartresults要添加哪个以及要更新哪个,那么您可以加载chart并添加所有新chartresult实例。然后您可以查询现有的chartresults并单独更新它们。

或者您可以遍历chartresults并确定是否需要添加或更新实体。

顺便说一句:如果 EF 是通过 EDMX 或代码首先映射的,这无关紧要。这只是您与实体交互的方式,而不是如何映射实体。

于 2012-11-14T13:43:48.260 回答