EF5 - 计算子孙 - 简化我的 linq

本文关键字:我的 linq 子孙 计算 EF5 | 更新日期: 2023-09-27 18:32:21

我在这里读过很多关于计算实体子孙的堆栈溢出的帖子。

我的实体层次结构是

Clients -> Locations -> Users

我已经编写了以下 LINQ lambda 表达式,它运行良好。

int locations = _clientRepository.Clients
                    .Where(x => (x.ClientId == id))
                    .Select(x => x.Locations.Count())
                    .First();
int users     = _clientRepository.Clients
                    .Where(x => (x.ClientId == id))
                    .Select(x => x.Locations.Sum(l => l.Applicants.Count()))
                    .First();

我只是觉得有一种方法可以进一步简化它。 第一种方法似乎没有必要,但我只是好奇是否有更好的方法来编写它。

提前感谢!

EF5 - 计算子孙 - 简化我的 linq

int number1 = myClientRepository
    .Clients
    .Where(x => x.ClientId == Id)
    .First()
    .Locations
    .Count;
int User1 = myClientRepository.Clients
    .Where(x => x.ClientId == Id)
    .First()
    .Locations.Sum(x => x.Applicants.Count);