Я пытаюсь реализовать метод репозитория для удаления объектов, использующих только первичный ключ, главным образом потому, что из webapp я обычно знаю только первичный ключ при вызове «запроса на удаление» из веб-страницу.Удалить объект в NHibernate только с помощью первичного ключа
Из-за ORM, сегодня опция состоит в том, чтобы получить сущность из базы данных, а затем удалить ее, что дает мне дополнительную обратную связь.
Я мог бы использовать HQL delete, но так как я хочу создать общий метод удаления для всех объектов, который не будет летать, если я не использую отражение, чтобы узнать, какое поле является первичным ключом (выполнимо, но не чувствую себя правильно).
Или это в природе NHibernate нуждается в сущности для правильной обработки каскадов?
Я пробовал этот подход с допущением, что он не будет загружать объект, если явно не требуется, однако еще не успел его протестировать. Может быть, кто-то может пролить свет на то, как это будет обрабатываться?
var entity = session.Load<T>(primaryKey);
session.Delete(entity);
РЕДАКТИРОВАТЬ: Теперь протестировали его и, похоже, он по-прежнему выполняет полный выбор объекта перед удалением.
возможный дубликат [Как удалить объект с помощью PK в nhibernate?] (http://stackoverflow.com/questions/3063777/how-to-delete-an-object-by-using-pk-in-nhibernate) –