2012-04-23 15 views
0

データベースでクエリを起動するために、nhibernateを使用してMVC3でアプリケーションを開発しています。Icriteria nhibernateを使用して結合を実行する方法

私には2つのモデルがあります。 HobbyMasters HObbyDetail

HobbyMasterクラスが含まれています:

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を解決Couldnot言ってますあなたはQueryOverを使用することができます

+0

fyi、この質問はMVCとは関係ありません。 – jrummell

答えて

0

に私を助けてください、それはラムダ式とICriteriaのラッパーです:

session.QueryOver<HobbyDetail>() 
    .Fetch(hobbyDetail => hobbyDetail.HobbyMasters).Eager 
    .TransformUsing(Transformers.DistinctRootEntity) 
    .List(); 
+0

HobbyDeatilのエラーが発生しました。このスコープを宣言できませんbcz異なる意味を与えて、エラーを取得します。Transformers.DistinctRootEntity – user1274646

関連する問題