我可以发誓已经为Queryable类构建了一个我无法找到的扩展方法,但也许我正在考虑一些不同的东西.
我正在寻找以下内容:
IQueryableen = from e in IDB.Entities select e; en.ForEach(foo => foo.Status = "Complete");
en.Foreach()必不可少:
foreach(Entity foo in en){ foo.Status = "Complete"; }
这已经写好了吗?如果没有,是否可以编写所述扩展方法,最好允许该表上的任何LINQ表和任何字段.哪里是一个好的起点?
基类库中没有任何内容.然而,许多开发人员在他们自己的公共库中都有这个,我们也在MoreLINQ中有它.
这有点违背了LINQ的精神,因为它只是副作用 - 但它确实很有用,所以我认为实用主义在这里胜过教条.
有一点需要注意 - 在您的示例中使用查询表达式确实没有意义.(这并不完全是多余的,但是如果你没有暴露这个值并不重要.)这里的选择并没有做任何有用的事情.你可以这样做:
IDB.Entities.ForEach(foo => foo.status = "Complete");
即使你想做一个"where"或"select",我通常也会使用点符号:
IDB.Entities.Where(foo => foo.Name == "fred") .ForEach(foo => foo.status = "Complete");
只使用查询表达式,它们实际上使代码更简单:)