Запросы NHibernate linq на обновления не учитывают транзакцию фиксацииC#

Место общения программистов C#
Ответить
Гость
 Запросы NHibernate linq на обновления не учитывают транзакцию фиксации

Сообщение Гость »


Я хотел бы обновить объекты, используя запросы linq, предоставляемые NHibernate. Например (из официального документа)

session.Query() .Where(c => c.BodyWeight > 20) .UpdateBuilder() .Set(c => c.BodyWeight, c => c.BodyWeight/2) .Обновлять(); Я заметил, что этот оператор выполняет обновление сразу перед фиксацией транзакции.

Есть две проблемы.

Первое. Как правильно осуществляется откат?

Во-вторых. Представляю этот сценарий. Две сущности и существует ограничение на ключ. Первый ключ объекта имеет значение A1, второй ключ объекта имеет значение A2. При обновлении foreach таким способом возникает проблема. Первый ключ объекта модифицируется, принимая значение A2, второй ключ объекта изменяется, принимая значение A1. Обновление базы данных таким образом вызывает исключение ограничения, нарушенного при первом обновлении. Как я могу это решить? Может быть, пакетным способом?

Заранее спасибо
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»