我有两张桌子A和B.他们的关系是1:N。 我想更新所有子表中的一个字段,但我不知道使用什么LINQ表达式来做到这一点 - 不应该太困难。
我在想这样的事情:
parentEntity.childrens.All(..lambda expr..).field = value;
但显然它不起作用。
我知道另一种选择是foreach(..),但如果可能的话,我更喜欢L2E。
答案 0 :(得分:7)
如果没有以foreach
,for
,List<T>.ForEach
或类似方式循环遍历该集合,则无法在集合的所有项目上设置属性。
如果你想把它保持在一行,你可以这样做:
author.Books.ToList().ForEach(b => b.PublishYear = 1999);
答案 1 :(得分:3)
你必须循环并更新全部或使用通过SQL
执行的原始Entity Framework
语句,这对于此类事情会更有效。