有没有办法用LINQ对集合进行批量更新?目前,如果我有一个List< myObject>我想将list1更新为等于List中每一行的TEST我将设置一个foreach循环,然后对于每个单独的对象,我将设置该值,然后保存它.这工作正常,但我只是想知道是否有一些LINQ方法,我可以做一些像myOject.BulkUpdate(columnName,value)?
解决方法
听起来你正在使用LINQ To sql,而且你已经掌握了基础知识.
LINQ To 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();