усечь или удалить все данные в таблице с помощью NHibernate

#c# #nhibernate #fluent-nhibernate

#c# #nhibernate #свободно-nhibernate

Вопрос:

с помощью NHibernateSession.Удалить (сущность); я могу удалить сущность. Как я могу усечь или удалить все данные в таблице с помощью NHibernate.

я могу сделать с HQL, например: session.CreateQuery ( «усечь имя_таблицы»). executeUpdate () но есть ли какие-либо другие варианты?

Ответ №1:

Пакетные операции, ориентированные на данные, на самом деле не являются тем, для чего предназначен NHibernate. Вы могли бы использовать session.CreateSQLQuery(), а затем просто указать любой SQL, который вы использовали бы в обычных ситуациях. Однако вам следует подумать, действительно ли вам нужно использовать NHibernate для этой конкретной задачи — вероятно, это не имеет смысла.

Комментарии:

1. хм, значит, вы предлагаете использовать для этого чистый DAO.

2. Ну, на мой взгляд, NH имеет смысл только в том случае, если вы используете объектно-ориентированный подход. Если вы думаете в терминах строк данных и хотите выполнять операции в масштабах таблицы, то NH — это просто сложный код, который будет вам мешать.

3. @Jajub — Я не знаю, работает ли это, возможно, так и есть, но для меня не имеет смысла использовать HQL для такого рода вещей.