使用EF插入和更新合并

时间:2012-11-08 17:14:56

标签: entity-framework entity-framework-4

我使用sql azure作为存储。

我有一个包含新记录和旧记录的数据集(实体列表)。我无法识别要更新或插入的记录。我需要一种方法使用EF将整个事件发送到db,使用一些语句来识别如何处理它(意味着更新或插入)

我已经能够使用对象上下文找到合并但它不符合我的目的。

如果有任何不清楚的地方,请询问。

1 个答案:

答案 0 :(得分:0)

这里有几个选项,但在所有这些选项中,EF必须知道哪些实体是新的,哪些是旧实体。

  • 让EF进行更改跟踪。也就是说,从同一个上下文实例中查询并保存。这是明显的答案,我不会多说太多,因为我认为你的架构不允许这样,否则你不会问这个问题。
  • 具有实体的某些特征,可以让您知道它是旧的还是新的。如果您不能使用EF更改跟踪,这是目前最常见的事情。通常这是使用主键值完成的 - 对于新实体,零/负数/ null,旧实体的其他所有内容。
  • 查询每个实体的数据库以查看它是否存在。