我在这里读了很多关于计算实体的子孙的堆栈溢出的帖子。
我的实体层次结构是
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();
我觉得有一种方法可以进一步简化它。第一种方法似乎应该是不必要的,但我只是好奇是否有更好的方法来编写它。
提前致谢!
答案 0 :(得分:2)
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);