c# - 使用 linq to sql 不循环更新数据库中的多条记录,可能吗?

标签 c# asp.net linq linq-to-sql

好吧,假设我想一次更新数据库中的多行,而不需要循环,如果我们用循环来做,它可能看起来像这样:

var products = (from prod in context.Products
               where prod.ProductCategoryID == myProductID
               select prod).ToList();


// modify each object
foreach (var product in products)
{
    product.PhoneNumber = ???;
    product.Name = ???;
    product.Address = ???;
}


context.SubmitChanges();

有更好的方法吗?不做任何循环?考虑到我是 linq 的初学者,所以如果有更好的方法,如果您为我提供一些示例,那就太好了,提前致谢。

最佳答案

LINQ 用于查询记录。您当前的 foreach 循环更具可读性,如果您尝试其他方法,那么它将在内部使用循环。

您可以看到this answer它使用 LINQ 修改集合,但这不是推荐的方式。

关于c# - 使用 linq to sql 不循环更新数据库中的多条记录,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663756/

相关文章:

c# - WCF 中的信息重用

html - 无序列表加载缓慢,导致它垂直对齐 1-2 秒,然后水平对齐?

asp.net - Azure http 负载平衡无法正常工作

c# - linq to sql LoadWith 限制字段返回

c# - System.Drawing.dll/NumericUpDown 的 .NET 访问冲突异常

c# - .Net WebException 检查本地机器是否可以访问互联网

sql - 多组列计数Linq

linq - LINQ-to-NHibernate FetchMany 的 where 子句?

c# - UWP 自定义控件,不能使用绑定(bind),只有 x :Bind, 如何适配?

asp.net - 从 Internet 打开 excel 文件会打开一个空白的 excel 窗口