好的,假设我想一次更新数据库中的多行,而不需要循环,如果我们用循环来做,它可能看起来像这样:
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 的初学者,所以如果有更好的方法,如果你给我提供一些例子那就太好了,提前谢谢。
您可以使用该行:
var products = (from prod in context.Products
where prod.ProductCategoryID == myProductID
select new Product(prod.PhoneNumber.ToLower(), prod.Name.ToUpper(), prod.Address.Trim()).ToList();
如果您想直接在上下文对象中更改产品:仅在 Products 类中创建特定函数。它会简单地设计得很好。
(from prod in context.Products
where prod.ProductCategoryID == myProductID
select prod.MakeChange(myPhoneNumber, myName, myAddress);
由于您可以调用该行代码,因此应该沿着 LINQ 查询更改 prod。
`var products =(来自上下文中的 prod.Products 其中 prod.ProductCategoryID == myProductID 选择产品).ToList();
products.All(w => { w.PhoneNumber = ???; w.Name = ???; w.Address = ???; return true; });`