首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收错误的实体结果

接收错误的实体结果
EN

Stack Overflow用户
提问于 2012-10-18 10:12:47
回答 1查看 66关注 0票数 0

我有两个表:所有者和客户,它们具有一对多的关联。在尝试微调我的实体学习时,我遇到了一个障碍。一整天,没有任何幸运,我试图通过这两行相似的代码返回不同的值来进行推理:

仅出于测试目的,我正在尝试计算每个所有者的客户总数。Owners实体具有返回客户端对象集合的客户端导航。我希望结果包括所有者实体,这将包括客户实体。

我想知道为什么这三种返回客户端总数的方式是不同的。第一个和第二个返回零个客户端,第三个返回正确的客户端总数。

返回零个客户端:

代码语言:javascript
复制
Owner owner = context.Owners.First(o => o.ownerID == 5);
var clients = owner.Clients.Count();

-

代码语言:javascript
复制
Owner owner = context.Owners.Where(o => o.ownerID == 5).FirstOrDefault();
var clients = owner.Clients.Count();

返回正确的计数

代码语言:javascript
复制
var clients = context.Owners.Where(o => o.ownerID == 5).Select(o => o.Clients.Count()).FirstOrDefault();

我希望能找到一个解释,为什么事情会如此不同。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-21 19:01:57

正如Pawel所说,这一定与延迟加载有关。没有,也就是说。我假设您的Owner类创建了自己的Clients集合(我想是在它的构造函数中),否则它将为空。

现在,如果您将Clients集合定义为虚拟的(假设您的工作是代码优先的),当您寻址owner.Clients.Count()时,EF将能够延迟加载它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12946105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档