Я использую NHibernate для веб-приложения. У меня есть модель, как это:Подзапрос для извлечения свойства NHibernate
public class ProductViewModel {
public virtual int Id { get; set; }
/* others simple properties */
public virtual IList<OfferViewModel> LastOffers { get; set; }
public ProductViewModel() { }
}
public class OfferViewModel {
public virtual string UserName { get; set; }
public virtual decimal Prince { get; set; }
public OfferViewModel() { }
}
Я хотел бы знать, как извлечь сбор имущества «LastOffers» с подзапроса HQL? Я хочу получить его с 10 самыми последними предложениями. Я правильно настроил свою модель, но я не знаю, как sintax выполняет подзапрос, чтобы получить это свойство.
Сегодня, я использую такую команду, чтобы принести мои ViewModel:
public IList<ProductViewModel> GetProductsForSalles()
{
return
Session.CreateQuery(@"select p.Id as Id,
p.Name as Name,
p.Price as Price,
p.Price as Date
/* FETCH LastOffers? */
from Product p
where p.Active=true and (p.Status=:Status)
order by a.Date asc")
.SetParameter("Status", Status.Started)
.SetMaxResults(50)
.SetResultTransformer(Transformers.AliasToBean<ProductViewModel>())
.List<ProductViewModel>();
}
Спасибо!
Hello Genius, Спасибо за awser. На самом деле, DistinctRootEntityResult shoul разрешает мою проблему :), но есть ли способ получить свойство с 10 самыми лучшими записями и заказать по id desc? Я хочу, чтобы это улучшило производительность, потому что у меня будет много предложений на продукт. Еще раз спасибо! – 2010-12-06 11:38:00