nhibernate и связи.
От: mitrofanofff  
Дата: 19.08.10 12:09
Оценка:
доброго времени суток.
вопрос такой. есть три объекта:


public class FootprintClass
{
   //any code...
}

public class Footprint
{
   //замапленно, всё ок
   public virtual FootprintClass FootClass
   {
      get {} set {}
   }
}

public class Device 
{
   //замапленно, всё ок
   public virtual Footprint Foot
   {
      get {} set {}
   }
   //НЕ замапленно, так как в этой таблице нет такого столбца...
   public virtual FootprintClass FootClass
   {
      get { return this.Foot.FootClass}
   }
}


собственно вопрос: как выбрать сделать выборку Device по полю FootClass?
заранее благодарен.
зы. поиск юзал, но, может, пора очки менять?
Re: nhibernate и связи.
От: mitrofanofff  
Дата: 20.08.10 06:05
Оценка:
ап?
Re: nhibernate и связи.
От: андрей_к Россия  
Дата: 20.08.10 06:10
Оценка:
M>
M>public class FootprintClass
M>{
M>   //any code...
M>}

M>public class Footprint
M>{
M>   //замапленно, всё ок
M>   public virtual FootprintClass FootClass
M>   {
M>      get {} set {}
M>   }
M>}

M>public class Device 
M>{
M>   //замапленно, всё ок
M>   public virtual Footprint Foot
M>   {
M>      get {} set {}
M>   }
M>   //НЕ замапленно, так как в этой таблице нет такого столбца...
M>   public virtual FootprintClass FootClass
M>   {
M>      get { return this.Foot.FootClass}
M>   }
M>}
M>


M>собственно вопрос: как выбрать сделать выборку Device по полю FootClass?


Добрый день
попробуйте нечто вроде этого

IList<Device> tmpresult = _session.CreateQuery("SELECT k FROM Device k " +
"where k.FootClass = :request ")
.SetParameter("request", request)
.List<Device>();
Re[2]: nhibernate и связи.
От: mitrofanofff  
Дата: 20.08.10 06:21
Оценка:
Здравствуйте, андрей_к, Вы писали:


_>Добрый день

_>попробуйте нечто вроде этого

_>IList<Device> tmpresult = _session.CreateQuery("SELECT k FROM Device k " +

_> "where k.FootClass = :request ")
_> .SetParameter("request", request)
_> .List<Device>();

спасибо, а с помощью CreateCriteria + Expression?
Re[3]: nhibernate и связи.
От: андрей_к Россия  
Дата: 20.08.10 06:59
Оценка:
Здравствуйте, mitrofanofff, Вы писали:

M>Здравствуйте, андрей_к, Вы писали:



_>>Добрый день

_>>попробуйте нечто вроде этого

_>>IList<Device> tmpresult = _session.CreateQuery("SELECT k FROM Device k " +

_>> "where k.FootClass = :request ")
_>> .SetParameter("request", request)
_>> .List<Device>();

M>спасибо, а с помощью CreateCriteria + Expression?


Да будет наверное и с CreateCriteria + Expression работать

IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))
.Add(Expression.Eq("FootClass", request)).List<Device>;
Re[4]: nhibernate и связи.
От: mitrofanofff  
Дата: 20.08.10 07:06
Оценка:
Здравствуйте, андрей_к, Вы писали:

_>Да будет наверное и с CreateCriteria + Expression работать


_>IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))

_> .Add(Expression.Eq("FootClass", request)).List<Device>;

так пробовал — ругается на could not resolve property...
Re[5]: nhibernate и связи.
От: андрей_к Россия  
Дата: 20.08.10 07:10
Оценка:
Здравствуйте, mitrofanofff, Вы писали:

M>Здравствуйте, андрей_к, Вы писали:


_>>Да будет наверное и с CreateCriteria + Expression работать


_>>IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))

_>> .Add(Expression.Eq("FootClass", request)).List<Device>;

M>так пробовал — ругается на could not resolve property...


а с CreateQuery?
Скорее всего потому-что FootClass никак не мапится CreateCriteria и ругается...
Re[5]: nhibernate и связи.
От: андрей_к Россия  
Дата: 20.08.10 07:19
Оценка: 2 (1)
Здравствуйте, mitrofanofff, Вы писали:

M>Здравствуйте, андрей_к, Вы писали:


_>>Да будет наверное и с CreateCriteria + Expression работать


_>>IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))

_>> .Add(Expression.Eq("FootClass", request)).List<Device>;

M>так пробовал — ругается на could not resolve property...


можно наверное еще так попробовать
IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))
.Add(Expression.Eq("Foot.FootClass", request)).List<Device>;
Re[6]: nhibernate и связи.
От: mitrofanofff  
Дата: 20.08.10 07:29
Оценка:
Здравствуйте, андрей_к, Вы писали:

_>можно наверное еще так попробовать

_>IList<KeyClass> tmpresult = _session.CreateCriteria(typeof(Device))
_> .Add(Expression.Eq("Foot.FootClass", request)).List<Device>

спасибо, буде время — попробую
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.