Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/nhibernate/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fluent Nhibernate查询和连接_Nhibernate_Fluent Nhibernate - Fatal编程技术网

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>();