繁体   English   中英

LINQ使用实体框架查询刚刚计算的值

[英]LINQ query for just computed values with Entity Framework

构造仅由行数和存在检查组成的查询的最佳方法是什么? 这是我目前正在做的事情:

var fruitSummary = (
    from _ in db.Apples
    select new {
        GreenAppleCount = db.Apples.Count(a => a.Color == "Green"),
        Yuck = db.Bananas.Any(b => b.Age > 10)
    }).First();

这个结构满足了我对数据库进行一次调用的主要目标,但是似乎应该有一种更简洁的方式来表达它。 请注意,在from子句_ in db.Apples中的_ in db.Apples未使用。 _ in db.Wildebeests可能是_ in db.Wildebeests ,并且将导致相同的查询。 有办法避免未使用的表引用吗?

我想到的最“明智”的选择是创建一个存储过程,该过程计算从EF调用的两个值。 任何时候您都希望在一次数据库往返中“做多件事”时,可以选择此选项。

关于查询的最佳书写方式是

     var output = Enumerable.Range(0, 1).Select(o => 
              new {
                 GreenAppleCount = db.Apples.Count(a => a.Color == "Green"),
                 Yuck = db.Bananas.Any(b => b.Age > 10
                  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM