0
编辑:忘了说我正在使用流利的NHibernate,即使标签可以暗示它。IQueryable在内层有多个连接的Linq查询
我这些实体类:
class OuterLevel
{
ICollection<MidLevel> mid_items;
... other properties
}
class MidLevel
{
OuterLevel parent;
Inner1 inner1;
Inner2 inner2;
... other properties
}
class Inner1
{
int id;
string description;
}
class Inner2
{
int id;
string description;
}
我需要建立一个LINQ查询,返回OuterLevel的列表,适当填充所有子对象。 假设所有映射是正确的,工作时,我发现这里的难点在于结果查询应该是这样的
SELECT * FROM OuterLevelTable OLT INNER JOIN MidLevelTable MLT ON (MLT.parentID = OLT.ID) INNER JOIN
Inner1Table ON (MLT.Inner1ID = Inner1Table.ID) INNER JOIN
Inner2Table ON (MLT.Inner2ID = Inner2Table.ID)
WHERE (Inner1Table.someproperty1 = somevalue1) AND (Inner2Table.someproperty2 = somevalue2)
的主要问题是两个联接从中层开始向下对象层次,所以我不能找出哪些抓取并支持fetchmany组合可以在不具有生成的查询加入两倍MidLevelTable,可以使用诸如以下的作用:
return All().FetchMany(x => x.mid_items).ThenFetch(x => x.inner1).FetchMany(x => x.mid_items).ThenFetch(x => x.inner2);
我想返回可被进一步过滤一个IQueryable的,所以我宁愿避免查询和QueryOver。因为当你在连接表的结果记录是不够反正填充集合过滤
由于提前, 马里奥
你想'IQueryable',但宁愿避免'查询'?这不就是'Query'的用途吗? – 2012-08-10 08:54:22