2012-04-23 3 views
0

Я разрабатываю приложение в MVC3 с помощью nhibernate для запросов на загрузку в базе данных.Как выполнить присоединение с помощью Icriteria nhibernate

У меня есть две модели. HobbyMasters HObbyDetail

HobbyMaster класс Содержит:

HobbyId 
and other details 

HobbyDetail Класс Содержит:

HobbyDetaild 
HobbyMasters hobbymaster 
other detals 

Теперь я хочу, чтобы выполнить Йона между двумя таблицами с помощью Icrteria:

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")) 

Но я получаю сообщение об ошибке говорящее Couldnot Resolve Свойство HobbyMaster из HobbyDetail класса

Пожалуйста, помогите мне

+0

fyi, этот вопрос не имеет ничего общего с MVC. – jrummell

ответ

0

Вы можете использовать QueryOver, это обертка на ICriteria с лямбда-выражений:

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

Я получаю сообщение об ошибке для HobbyDeatil, говорящий не может быть объявлен n этой областью bcz it wud дает другое значение, а также gettn ошибка для Transformers.DistinctRootEntity – user1274646

Смежные вопросы