1

Fluent nHibernate を学習中です。オンラインで見つけた古典的な例とまったく同じではないクエリの作成に問題があります。通常、私はこの例を見つけました:

IQueryOver<Cat,Cat> catQuery =
    session.QueryOver<Cat>(() => catAlias)
        .JoinAlias(() => catAlias.Kittens, () => kittenAlias)
        .Where(() => catAlias.Age > 5)
        .And(() => kittenAlias.Name == "Tiddles");

したがって、この例で私が理解していることから、子猫に結合された後に猫オブジェクトが返され、子猫の名前と猫の年齢を使用してフィルター処理されます。Cat オブジェクトには Kittens というプロパティがあるため、結合が機能します。

私がやろうとしていることの例は次のようになります:

Forest f = null;
Tree t = null;

ForestsFound = session.QueryOver<Forest>(() => f)
                    .JoinAlias(() => t.Forest, () => f)
                    .Where(() => t.NumberOfTrees > 1000)
                    .List<Forest>()
                    .ToList<Forest>();

フォレストは本質的にルックアップ テーブルです。ツリーが含まれるフォレストへのリンクを持つのはツリーですが、フォレストの個別のリストを返したいと考えています。したがって、通常のSQLでは次のようになります。

select f.*
from Forest f
   inner join Tree t
      on t.Forest_id = f.ID
where t.NumberOfTrees > 1000
4

1 に答える 1

2

Forest -> Trees の関係がある場合は、次のようにすることができます。

Forest f = null;
Tree t = null;

ForestsFound = session.QueryOver<Forest>(() => f)
    .JoinAlias(() => f.Trees, () => t)
    .Where(() => t.NumberOfTrees > 1000)
    .List<Forest>();
于 2012-10-17T10:38:09.240 に答える