在你的
第一个查询
只有
GroupID
(或
组ID
只有
数据库中的列,只返回那些值。
From g In Db.Context.Current.Groups
Select g.GroupID
第二个查询
,LINQ to SQL知道它需要返回标量(与第一个查询相同),
加上对实际实体实例的属性/方法调用返回的值
MemberCount()
必须首先有一个组对象来调用它,对吗?所以LINQ to SQL必须执行完整的实体获取,这就是它查询所有列的原因。
From g In Db.Context.Current.Groups
Select g.GroupID, g.MemberCount 'property/method call on an entity
[这里只是理论…]你可能会说,但是
成员计数()
组ID
. 我会回答,LINQ to SQL怎么知道呢?LINQ to SQL如何知道您的方法
不
是否依赖于其他基于db列的属性的数据?它不知道,所以它必须返回完整的对象。[结束理论化]
建议:
ContactsGroupsXtabs
在您的第二个查询中,group on
然后做一个
Count()
为了得到你的价值。(我可以从你的其他问题和答案中看出,你知道如何做到这一切,所以我将跳过这个例子。)