0

nhibernate を使用してデータベースに対してクエリを実行する MVC3 でアプリケーションを開発しています。

私は2つのモデルを持っています。ホビーマスターズ

ホビーマスター クラスの内容:

HobbyId
and other details

HobbyDetail クラスの内容:

HobbyDetaild
HobbyMasters hobbymaster
other detals

今、Icrteria を使用して 2 つのテーブル間で jon を実行したいと考えています。

ICriteria criteria = session.CreateCriteria<HobbyDetail>()
                    .CreateAlias("HobbyMasters", "HobbyMasters")
                    .Add(Restrictions.EqProperty("HobbyMasters.HobbyId", "HobbyDetail.hobbymaster.HobbyId"));

これも:

 HobbyDetail = session.CreateCriteria(typeof(HobbyDetail))
               .CreateAlias("HobbyMasters", "HobbyMasters", NHibernate.SqlCommand.JoinType.InnerJoin)
              .Add(Restrictions.EqProperty("HobbyMasters.hobbymaster.HobbyId", "HobbyDetail.HobbyId"))

しかし、HobbyDetail クラスのプロパティ HobbyMaster を解決できませんでしたというエラーが表示されます。

私を助けてください

4

1 に答える 1

0

QueryOver を使用できます。これは、ラムダ式を使用した ICriteria のラッパーです。

session.QueryOver<HobbyDetail>()
  .Fetch(hobbyDetail => hobbyDetail.HobbyMasters).Eager
  .TransformUsing(Transformers.DistinctRootEntity)
  .List();
于 2012-04-23T18:15:48.807 に答える