【发布时间】:2011-12-08 23:08:17
【问题描述】:
我知道您可以将新项目插入您的 SQL 数据库(LINQ to SQL,由 SQLMetal.exe 生成的代码)。您可以在实体表中使用 Attach 方法附加新项目,也可以编辑现有记录。
现在,假设您看到的不是一个新实体,而是很多 - 其中一些很可能已经存在于表格中。有一个主键,但集合中可能有一些更改的记录,因此主键可能不是找出更改内容的最佳方法。
我是否必须检查 LINQ 表中的每条记录,然后将其所有列数据与相关集合中实体中的所有列数据进行比较?这会告诉我哪些是新的,哪些有变化,哪些可以丢弃。这似乎是一种非常冗长的方式。
有没有更简单的方法?
谢谢。
【问题讨论】:
-
他们称它为 UPSERT,但在 Linq to SQL 中你必须roll your own
标签: c# linq-to-sql