NHibernate несколько соединенных подклассов и дубликаты имен столбцов с использованием критериев
Предположим, у нас есть эта структура сущности:
Document
- DocumentA
- DocumentB
В базовом классе Document у нас есть поля Id, Name, CreateDate. В объединенном подклассе DocumentA у нас есть поля Book, Pages. А в DocumentB у нас есть журнал, страницы.
Так что проблема в том, когда я пытаюсь получить записи с критериями:
var prj = Projections.ProjectionList();
foreach (var col in selectColumns)
{
prj.Add(Projections.Property(col), col);
}
criteria.SetProjection(prj).SetResultTransformer(new AliasToBeanResultTransformer(entityType));
Таким образом, если у нас в столбцах selectColumns два столбца Pages, NHibernate будет выбирать только данные из первого. На самом деле он даже генерирует SQL-запрос, как это
SELECT top 15
this_1_.Pages as y0_
, this_1_.Pages as y1_
, this_.CreationDate as y2_
, this_.CreationAuthor as y3_
, this_.Name as y4_
, this_.Id as y5_
FROM Document this_
left outer join DocumentA this_1_ on this_.Id=this_1_.Id
left outer join DocumentB this_2_ on this_.Id=this_2_.Id
Кто-нибудь знает, как решить мою проблему, используя критерии? Кстати, у меня нет возможности изменить эту структуру, в этой системе пользователь может определять свои собственные классы и вложенные классы.