.net 亚音速阅读成本

.net 亚音速阅读成本,.net,subsonic,.net,Subsonic,假设我有以下模式 table A: ID int primary key value varchar(255) not null table B: ID int primary key AID foreign key refences A (ID) name varchar(40) not null 现在当我执行下面的亚音速linq var items = from a in A.All() where any-condition select a; 一切都很好 杀手是当我做以下事情的

假设我有以下模式

table A:
ID int primary key
value varchar(255) not null

table B:
ID int primary key
AID foreign key refences A (ID)
name varchar(40) not null
现在当我执行下面的亚音速linq

var items = 
from a in A.All() 
where any-condition select a;
一切都很好

杀手是当我做以下事情的时候

for(var item in items)
{
   for(var nestedItem in item.B) // troubling!
   {
     DoSomething(nestedItem)
   }
}
我对内部工作不是很熟悉,但我很确定它会对DB进行额外的访问,以获得连接的表行


您能告诉我如何避免如此昂贵的旅行吗?

这是ORMs的一个典型问题-选择N+1。您遇到的是惰性加载与渴望加载,在这种情况下,您需要执行某种外部连接(使用查询工具)或将B拉入列表