我有两个表:所有者和客户,它们具有一对多的关联。试图微调我的实体学习,我遇到了障碍。一整天,没有任何运气,我尝试通过这两条相似的代码行返回不同的值进行推理:
仅用于测试目的,我正在尝试将每个所有者的客户总数。Owners 实体有一个返回 Client 对象集合的 Clients 导航。我希望结果包括 Owners 实体,其中包括 Clients 实体。
我想知道为什么这三种返回客户总数的方式不同。第一个和第二个返回零个客户端,第三个返回正确的客户端总数。
返回零客户:
Owner owner = context.Owners.First(o => o.ownerID == 5);
var clients = owner.Clients.Count();
-
Owner owner = context.Owners.Where(o => o.ownerID == 5).FirstOrDefault();
var clients = owner.Clients.Count();
返回正确计数
var clients = context.Owners.Where(o => o.ownerID == 5).Select(o => o.Clients.Count()).FirstOrDefault();
我希望找到一个解释为什么事情如此不同。
谢谢