Я застрял на этом и не могу найти выход: /
Я пытаюсь сделать что-то подобное (T-SQL).Прекрасно работает в MS SQL Managment Studio
select *
from Product join Price on (Product.ID = Price.ProductID)
where Product.ID = '15' and Price.ShopID = '20'
Я создал критерии вроде этого
Product p = session.CreateCriteria<Product>("product")
.Add(Restrictions.IdEq(productId))
.CreateAlias("prices", "productPrice")
.Add(Restrictions.Eq("productPrice.shop.id", shopId))
.UniqueResult<Product>();
И я получаю это при выполнении верхнего кода.Это выглядит примерно так же, верно?Но когда я отлаживаю и проверяю возвращенный продукт (здесь 'p'), я получаю все цены, с которыми он соотносится: / не только тот, который имеет значение ShopId = '20 '.Я гарантирую вам, что в базе данных есть только один такой.
NHibernate: SELECT this_.id as id3_1_, this_.name as name3_1_, this_.description
as descript3_3_1_, productpri1_.id as id2_0_, productpri1_.productPrice as prod
uctP2_2_0_, productpri1_.ProductID as ProductID2_0_, productpri1_.ShopID as Shop
ID2_0_ FROM [Product] this_ inner join [Price] productpri1_ on this_.id=productp
ri1_.ProductID WHERE this_.id = @p0 and productpri1_.ShopID = @p1;@p0 = 15 [Type
: Int32 (0)], @p1 = 20 [Type: Int32 (0)]
Может ли кто-нибудь указать мне, что я здесь не так делаю?