【问题标题】:LINQ to SQL CRUD (insert specifically) - inserting multiple itemsLINQ to SQL CRUD(专门插入) - 插入多个项目
【发布时间】: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


【解决方案1】:

我认为“UPSERT”是您所追求的。

它基本上是一个用于sql的组合插入/更新命令,如果存在则更新它,如果不存在则创建它。

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

【讨论】:

  • 别看我。我没有这样做。
  • @user738383 不用担心,不管是谁删除了它。希望上面的链接可以为您的问题提供一些指导。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
相关资源
最近更新 更多