LINQ to SQL CRUD(专门插入) - 插入多个项目

时间:2011-12-08 15:04:36

标签: c# linq-to-sql

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

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

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

有更简单的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为“UPSERT”就是您的追随者。

它基本上是sql的组合插入/更新命令,如果它存在则更新它,如果没有创建它。

http://www.databasejournal.com/features/mssql/article.php/3739131/UPSERT-Functionality-in-SQL-Server-2008.htm