【问题标题】:Linq to Entities how to update record in one database accessLinq to Entities 如何在一个数据库访问中更新记录
【发布时间】:2012-10-05 12:48:03
【问题描述】:

我想更新 1000 万条记录数据库中的许多记录。这里的示例表明可以这样进行更新:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
c.Name = "New Name";
dataBase.SaveChanges();

但这看起来像是两次访问数据库。一个获取记录,另一个保存记录。如果我在一次调用中更新了 1000 条记录,我认为这将不得不将 1000 条记录从数据库中提取到我的 WCF 服务器,进行更改,然后通过 LAN 将 1000 条记录推回数据库服务器。

在过去,“Update Customers set Name = 'Test' where Year

在 Linq to Entities 中有这样的东西吗?

*BTW:这是我试图实现的一个简单示例,我实际上有数百个命令要发出,我不希望 2*数百次访问数据库,我也不认为有必要将数据库中的所有数据带到 WCF 只是为了更改它并发送回来!*

【问题讨论】:

    标签: linq entity


    【解决方案1】:

    正如你所怀疑的那样。如果您有 1000 条记录,您确实会看到针对此操作的 1001 个数据库请求。 ORM 非常适合将对象推入内存,使用它们然后更新它们。它们不适合批量操作。在这种情况下,您最好的选择是使用 ADO.Net 并通过代码传递您的更新语句,或者将您的批量更新命令放在存储的过程中并将该过程映射到 EF 中的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多