Fluent Nhibernate查询和连接
我正在学习流利的英语。我在构建一个与我在网上找到的经典示例不完全相同的查询时遇到了麻烦。通常我会发现以下示例:Fluent Nhibernate查询和连接,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在学习流利的英语。我在构建一个与我在网上找到的经典示例不完全相同的查询时遇到了麻烦。通常我会发现以下示例: IQueryOver<Cat,Cat> catQuery = session.QueryOver<Cat>(() => catAlias) .JoinAlias(() => catAlias.Kittens, () => kittenAlias) .Where(() => catAlias.Age
IQueryOver<Cat,Cat> catQuery =
session.QueryOver<Cat>(() => catAlias)
.JoinAlias(() => catAlias.Kittens, () => kittenAlias)
.Where(() => catAlias.Age > 5)
.And(() => kittenAlias.Name == "Tiddles");
如果您与Forest->Trees有关系,则可以执行以下操作:
Forest f = null;
Tree t = null;
ForestsFound = session.QueryOver<Forest>(() => f)
.JoinAlias(() => f.Trees, () => t)
.Where(() => t.NumberOfTrees > 1000)
.List<Forest>();
Forest f=null;
树t=null;
ForestsFound=session.QueryOver(()=>f)
.JoinAlias(()=>f.树,()=>t)
.其中(()=>t.NumberOfTrees>1000)
.List();
请阅读本文的其他人注意,看起来不可能像我尝试的那样完成此操作,您必须调整映射以包含与其他类的HasMany关系您可以在没有HasMany关系的情况下完成此操作,但随后需要使用子查询
select f.*
from Forest f
inner join Tree t
on t.Forest_id = f.ID
where t.NumberOfTrees > 1000
Forest f = null;
Tree t = null;
ForestsFound = session.QueryOver<Forest>(() => f)
.JoinAlias(() => f.Trees, () => t)
.Where(() => t.NumberOfTrees > 1000)
.List<Forest>();