如何在一个查询中写这个?
var query = this.ObjectContext.SomeCollection.
.Where(...)
.Select(f => new {somenumber = f.somenumber});
MyType type = new MyType()
{
Sum = query.Sum(f => f.somenumber)
}
答案 0 :(得分:4)
由于投影中只有一个属性,因此完全不需要使用匿名类型。您可以简单地获取查询并将其包含在MyType
的对象初始值设定项中。请注意,只要您不在其他地方重复使用投影(在这种情况下,您可以将其拉出外部然后重复使用),这样就可以了。
var type = new MyType {
Sum = this.ObjectContext
.SomeCollection
.Where(SomeCondition)
.Select(f => f.somenumber)
.Sum()
};
此外,您可以将.Select(f => f.somenumber).Sum()
缩减为Sum(f => f.somenumber)
。
答案 1 :(得分:3)
MyType type = new MyType {
Sum =
this.ObjectContext.SomeCollection
.Where(...)
.Select(f => f.somenumber)
.Sum() };
甚至
MyType type = new MyType {
Sum =
this.ObjectContext.SomeCollection
.Where(...)
.Sum(f => f.somenumber) };
应该做的伎俩