Я пытаюсь обновить один столбец в таблице. UPDATE не выдано (проверено с использованием SQL Profiler). Нет ошибок.NHibernate не сохраняет только одно свойство
- Составление карт имеет
dynamic-update="true"
. - В классе не включено управление версиями.
- Флеш-режим Commit.
- Недвижимое имущество, преобразованное без модификаторов вставки/модификации (
<property name="Deleted" />
). - Недвижимость автоматически реализована (
public virtual bool Deleted { get;set;}
). NH 3.3.0, .NET 4, x64.
using (var transaction = this._session.BeginTransaction()) { try { var order = this.session.Load<Order>(id); order.Deleted = true; this._session.Update(order); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } }
Если вы нарушаете строку фиксации транзакции, это _session.IsDirty() true? Удаляется ли авто-свойство или имеет поле поддержки? И вам не нужно вызывать Update на сессии, но я сомневаюсь, что это проблема. –
Используете ли вы управление версиями? – Rippo
Мы не можем угадать, что находится внутри 'Repository.Load'. Пожалуйста, замените эту строку на 'var order = _session.Get (id)'. При этом '_session.Update' не требуется. Вам также не нужно вручную откатывать транзакцию. –