gpt4 book ai didi

Linq to Entities 如何在一个数据库访问中更新记录

转载 作者:行者123 更新时间:2023-12-04 19:55:45 24 4
gpt4 key购买 nike

我想更新 1000 万条记录数据库中的许多记录。这里的例子表明更新可以像这样完成:

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

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

在过去,“Update Customers set Name = 'Test' where Year < 1960 ”将是 LAN 上的一条指令,工作在数据库服务器上完成。

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

*顺便说一句:这是我想要实现的一个简单示例,我实际上有数百个命令要发出,我不想 2* 数百次访问数据库,我也认为没有必要将所有数据从数据库带到 WCF 只是为了更改它并将其发回!*

最佳答案

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

关于Linq to Entities 如何在一个数据库访问中更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com