我知道您可以在SQL数据库中插入新项目(LINQ to SQL,SQLMetal.exe生成的代码)。您可以在实体表中使用Attach方法附加新项目,不可以,或者您可以编辑现有记录。
现在,让我们说,而不是一个新的实体,你会得到很多 - 其中一些可能已经存在于表中。有一个主键,但是集合中可能会有一些更改的记录,因此主键可能不是确定更改内容的最佳方法。
我是否必须遍历LINQ表中的每条记录,然后将其所有列数据与相关集合中的实体中的所有列数据进行比较?这会告诉我哪些是新的,哪些有变化,哪些可以丢弃。这似乎是一个非常漫长的做法。
有更简单的方法吗?
感谢。
答案 0 :(得分:0)
我认为“UPSERT”就是您的追随者。
它基本上是sql的组合插入/更新命令,如果它存在则更新它,如果没有创建它。