更新所有子实体,EF/Linq

本文关键字:EF Linq 实体 更新 | 更新日期: 2023-09-27 18:05:17

我有两个表A和b,它们的关系是1:N。我想更新所有子表中的一个字段,但我不知道用什么LINQ表达式来做这件事——应该不会太难。

我在想:

parentEntity.childrens.All(..lambda expr..).field = value;

但很明显这行不通。

我知道另一种选择是foreach(..),但如果可能的话,我更喜欢L2E。

更新所有子实体,EF/Linq

你不能在集合的所有项上设置属性,而不以某种方式循环遍历该集合,无论是foreach, for, List<T>.ForEach还是类似的

如果你想保持在一行,你可以这样做:

author.Books.ToList().ForEach(b => b.PublishYear = 1999);

您必须循环并更新所有或使用通过Entity Framework执行的原始SQL语句,这对于这种事情将更有效。