2011-12-08 34 views
1

我知道你可以插入新项目到你的SQL数据库(LINQ to SQL,由SQLMetal.exe生成的代码)。您可以在实体表中使用Attach方法附加新项目,并且不能,或者您可以编辑现有记录。LINQ to SQL CRUD(插入特定) - 插入多个项目

现在,让我们说,而不是一个新的实体,你会得到很多 - 其中一些可能已经存在于表内。有一个主键,但可能在集合中可能会有一些更改的记录,所以主键可能不会是确定更改内容的最佳方法。

我是否需要查看LINQ表中的每条记录,然后将其所有列数据与相关集合中实体的所有列数据进行比较?这会告诉我哪些是新的,哪些有变化,哪些可以丢弃。这似乎是一个非常漫长的做法。

有没有更简单的方法?

谢谢。

+0

他们称之为UPSERT,但在LINQ to SQL中,你必须[推出自己的(http://stackoverflow.com/questions/637225/how-would-you-write-an-upsert -for-linq-to-sql) – sq33G

回答