我有这个
var total = 0;
someObject.SomeCollection.SelectMany(x=> x.SomeOtherCollection.ForEach(y=>{
total = y.AnotherCollection.Sum(z=> z.Total);
});
现在我需要这样做,
查询(IQueryable)
Query.Where(x => MyTotal == (x.SomeCollection.SelectMany.. just as above and returns the Total)).
我意识到我不能用linq中的语句体写一个查询到sql。
还有其他方法吗?
答案 0 :(得分:0)
)回答我自己的问题。
相当于:
var total = 0;
someObject.SomeCollection.SelectMany(x=> x.SomeOtherCollection.ForEach(y=>{
total = y.AnotherCollection.Sum(z=> z.Total);
});
就是这样:
Query.Where(x => MyTotal == (x.SomeCollection.SelectMany(y=> y.SomeOtherCollection).SelectMany(z=> z.AnotherCollection).Sum(t=> t.Total)));
谢谢大家!
答案 1 :(得分:-1)
我认为你想要的是这个
var items = Enumerable.Range(0, 10).Select(i=>new { Items = Enumerable.Range(0,10).Select(j=>new { Total = j }).AsQueryable() }).AsQueryable();
var total = items.Sum(i => i.Items.Sum(j => j.Total));