У меня проблема с запросами nhibernate.
В результате я получаю смесь из двух таблиц.
Как мне сказать nhibernate не объединять результат из разных таблиц.
Это мой запрос:
using (var session = SessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
timeEntryReportIds = session.Query<XXXX>()
.Where(x => x.SentToServiceLeader == true && x.StartDate < cutoffDate)
.Select(x => x.Id)
.ToList();
transaction.Commit();
}
}
Мое сопоставление классов XXXX выглядит следующим образом:
public class XXXXMapping : ClassMapping<XXXXEntity>
{
public XXXXMapping()
{
Table("XXXX");
Property(x => x.X1, c => c.Type<UtcDateTimeType>());
Property(x => x.X2, c => c.Type<UtcDateTimeType>());
Property(x => x.X3, c => c.Index("IX_X3"));
Property(x => x.X4, c => c.Index("IX_X4"));
Property(x => x.X5);
Property(x => x.X6);
}
}
И у меня есть еще один, который выглядит так:
public class YYYYYMapping : ClassMapping<YYYYYEntity>
...
Мои классы определены так:
public class XXXXEntity : MwlEntityBase
...
и
public class YYYYEntity : XXXXEntity
...
Проблема, с которой я столкнулся, заключается в том, что когда я выполняю свой запрос, я получаю результат из таблиц XXXX и YYYYY.
Как мне сказать nhibernate не делать этого!
Я провел некоторое исследование, прежде чем приехать сюда, и он сказал мне, что мне нужно расширить базовый класс, но у меня нет контроля над классом [MwlEntityBase]. Другие классы, которые я контролирую.
Я попытался изменить наследование Classmapping с ClassMapping на UnionSubclassMapping и JoinedSubclassMapping. Но это не помогло, когда мы начали что-то говорить о пропущенном корневом элементе или о чем-то подобном. Я предположил, что это потому, что я не могу изменить класс MwlEntityBase?
Или, может быть, я поступил неправильно.
В любом случае, мне нужна помощь с правильным способом решения этой проблемы. Я могу даже согласиться на неправильный способ решить это, это работает :) 1022 *