моделей
У меня 3 модели;Catalog
, Product
и Translation
.
Product
имеет FK до Catalog
.
Translation
имеет FK до Product
.
Однако Product
не имеет Bag
из Translations
.
Если я хочу получить перевод, я должен сделать это с помощью «ручного» запроса а-ля
QueryOver<Translation>().Where(x=> x.Product = product)
ТекущийСитуация
На данный момент я работаю с запросом:
Catalog catalogAlias = null;
Product productAlias = null;
return _session
.QueryOver(() => catalogAlias)
.JoinAlias(() => catalogAlias.ProductList, () => productAlias)
.Select(
Projections.ProjectionList()
.Add(Projections.Property(() => catalogAlias.Id))
.Add(Projections.Property(() => productAlias.Name))
)
.Future<object[]>();
Что я хочу сделать
Теперь мне нужно добавить перевод к каждому возвращенному object[]
.Поэтому мне нужно что-то вроде этого:
Catalog catalogAlias = null;
Product productAlias = null;
Translation translationAlias = null;
return _session
.QueryOver(() => catalogAlias)
.JoinAlias(() => catalogAlias.ProductList, () => productAlias)
.Select(
Projections.ProjectionList()
.Add(Projections.Property(() => catalogAlias.Id))
.Add(Projections.Property(() => productAlias.Name))
// This here vvv
.Add(Projections.Property(()=>
_session.QueryOver(() => translationAlias)
.Where(()=> translationAlias.Product == productAlias)
.SingleOrDefault()
.Name
))
// This here ^^^
)
.Future<object[]>();
Конечно, если бы это сработало, я бы не стал задавать этот вопрос.Это бросает
System.ArgumentException : Unrecognised method call in expression value
Вопрос
Как я могу получить Translation
,
на основе свойства Product
,
, которое является частьюсписок продуктов в Catalog
?