如何获得集合在集合上的投影

| T-SQL查询,例如:
select sum(amount), min(amount), max(amount) from sales where salesdate < getDate()
似乎很难翻译成Linq to Entites。 初猜我会尝试
var result = from s in entites.Sales where s.SalesDate < DateTime.Today
group s by 1 into g
select new { 
AmountSum = g.Sum(x=> x.amount), 
AmountMin= g.Min(x=>x.amount),
AmountMax= g.Max(x=>x.amount)}
实际上,这是否是完成t-sql正在做的相同事情的最佳方法?显然,EF生成的SQL包括一组,这使我有些关注。     
已邀请:
您可以通过更改查询范围来实现此目的-使用示例字典来说明:
Dictionary<int, int> sampleDictionary = new Dictionary<int, int>();

sampleDictionary.Add(4, 5);
sampleDictionary.Add(7, 8);
sampleDictionary.Add(1, 2);

var val = new
{
    Max = sampleDictionary.Max(x => x.Key),
    Min = sampleDictionary.Min(x => x.Key),
     Sum = sampleDictionary.Sum(x => x.Key)
};

Console.WriteLine(val);
Console.ReadKey();
这会将密钥的最大,最小和总和选择到新的匿名对象中。您可以这样写:
var set = entites.Sales.Where(x => x.SalesDate < DateTime.Today);

var val = new
{
    Max = set.Max(x => x.Key),
    Min = set.Min(x => x.Key),
    Sum = set.Sum(x => x.Key)
};
    

要回复问题请先登录注册