1

我正在使用 sql azure 作为存储。

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

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

如果有什么不清楚的,请询问。

4

1 回答 1

0

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

  • 让 EF 进行更改跟踪。也就是说,从同一个上下文实例中查询和保存。这是显而易见的答案,我不会说太多,因为我假设您的架构不允许这样做,或者您不会问这个问题。
  • 具有实体的某些特征,可以让您知道它是旧的还是新的。如果您不能使用 EF 更改跟踪,这是迄今为止最常见的做法。通常这是使用主键值来完成的——对于新实体来说是零/负数/null,对于旧实体来说是其他所有值。
  • 查询每个实体的数据库以查看它是否存在。
于 2012-11-09T18:14:02.497 回答