Я просто хочу обновить таблицу столбцов на основе условия.Вот мой код:
this.session.Query<EventEntity>()
.Where(e => [...])
.Update(c => new { Enabled = true });
Этот вызов генерирует следующий SQL:
insert into HT_event SELECT evententit0_.Id as Id FROM event evententit0_ WHERE [...]
UPDATE event SET Enabled=? WHERE (Id) IN (select Id from HT_event)
Почему NHibernate создает временную таблицу для хранения идентификаторов, а не напрямую генерирует правильное предложение IN?Как я могу отключить это поведение?
Чтобы получить больше информации, я использую отображение наследования иерархии таблиц для классов с отображением по коду.Мой EventEntity
- это абстрактный класс:
public abstract class EventEntity { ... }
public class EventMap : ClassMapping<EventEntity> { ... }
У меня есть несколько других сущностей, которые наследуются от EventEntity
public abstract class MatchEntity { ... }
public class MatchMap : JoinedSubclassMapping<MatchEntity> { ... }
Спасибо за вашу помощь!