有沒有辦法對使用LINQ的集合進行批量更新?目前如果我有一個List<myObject>
並且我想更新column1以使列表中的每一行都等於TEST,那麼我將設置一個foreach循環,然後爲每個單獨的對象設置值並保存它。這工作正常,但我只是想知道是否有一些LINQ方法在那裏我可以做一些像myOject.BulkUpdate(columnName, value)
?批量更新LINQ to SQL
回答
聽起來像你正在使用LINQ To SQL,你已經有了基礎知識。
LINQ到SQL是關於將表抽象爲類,並沒有真正提供'銀彈'或你想要的一行。
要做到這一點的唯一方法是實現您的單線程將使存儲過程採取該列名稱和新值,並自己實現該邏輯。
db.MassUpdateTableColumn("Customer", "Name", "TEST");
....
CREATE PROC MassUpdateTableColumn
@TableName varchar(100), @ColumnName varchar(100), @NewVal varchar(100)
AS
/*your dynamic SQL to update a table column with a new val. */
否則,它是爲你描述:
List<Customer> myCusts = db.Customers.ToList();
foreach(Customer c in myCusts)
{
c.Name = "TEST";
}
db.SubmitChanges();
是的,我明白如何做到這一點。我的問題只是詢問是否有更簡化的LINQ函數。 – esastincy
LINQ到SQL(或EF爲此事),是所有關於把對象到內存中,操縱它們,然後使用每行的單獨數據庫請求更新它們。
如果您不需要在客戶端上提供整個對象,那麼使用服務器端操作(存儲過程,TSQL)而不是LINQ會更好。您可以使用LINQ提供程序針對數據庫發出TSQL。例如,使用LINQ to SQL,你可以使用context.ExecuteCommand(「Update table set field = value where condition」),只需要注意SQL Injection。
這裏的要求完全可以使用Linq表達式和Terry Aney在這個主題上的優秀庫。
Batch Updates and Deletes with LINQ to SQL
在你給將如下的例子條款的更新:
using BTR.Core.Linq;
...
Context.myObjects.UpdateBatch
(
Context.myObjects.Where(x => x.columnName != value),
x => new myObject { columnName = value}
);
編輯(2017年1月20日):這是一文不值,這是現在可以NuGet包的形式@https://www.nuget.org/packages/LinqPost/。
Install-Package LinqPost
Upvoted避免RBAR,第一個答案是不正確的。 – Jasmine
- 1. LINQ to SQL更新
- 2. 加入和LINQ批量更新到SQL
- 3. 的LINQ to SQL - 更新
- 4. Linq to SQL - 未能更新
- 5. LINQ to SQL - 更新記錄
- 6. Linq to SQL更新數據
- 7. Linq to SQL,更新多行
- 8. 更新記錄Linq-to-SQL
- 9. LINQ to SQL更新問題
- 10. VB LINQ to SQL更新
- 11. asp.net 3.5 linq批量更新?
- 12. 批量Sql更新
- 13. Linq to SQL比Linq to Entities更快嗎?
- 14. 更新Linq To Entities
- 15. 更新LINQ to SQL的操作
- 16. Linq To Sql ManyToMany更新現有記錄
- 17. 用linq-to-sql更新記錄列表
- 18. Linq to SQL:更新聚合根
- 19. Linq-To-Sql SubmitChanges不更新數據庫
- 20. 的LINQ to SQL更新多張行
- 21. LINQ-to-Sql更新 - 性能問題
- 22. 使用LINQ to SQL更新表?
- 23. 插入在dymanic更新 - LINQ to SQL的
- 24. 的LINQ to SQL ::數據更新問題
- 25. 的LINQ to SQL更新對象
- 26. Linq-to-Sql選擇視圖,更新表
- 27. Linq-to-SQL不在WP7上更新
- 28. LINQ to SQL沒有更新子元素
- 29. 更新SqlCE數據庫Linq-to-Sql
- 30. linq-to-sql有條件地更新
你說的是LINQ-to-SQL嗎? –
我總是回覆到存儲過程,使用XML作爲批量數據進行批量更新,但想知道它在LINQ中是否可行。 –