Проблемы:Nhibernate счетчик неожиданного ряд растет после удаления
я получаю сообщение об ошибке:
Batch update returned unexpected row count from update; actual row count: 0; expected: 1
когда некоторый объект удален от выборки и удаления. После любого следующего удаления строки подсчета и ожидается, растут в течение, например:
Batch update returned unexpected row count from update; actual row count: 11; expected: 12
Код:
var queueEntry = _session.Query<MyTable>().FirstOrDefault(x => x.Id == id);
if (queueEntry != null)
{
_session.Delete(queueEntry);
try
{
_session.Flush();
}
catch (Exception ex)
{
_session.Clear();
}
return 1;
}
Попытки:
я пытался несколько вещей, но безуспешно, я Эти строки были добавлены в статье catch
:
_session.Disconnect();
_session.Reconnect();
Я попытался обернуть весь код, который я поместил здесь с транзакцией, а вместо _session.Flush()
Я положил transaction.Commit()
.
Отображение:
Это mapping by code
public class MyTable : IEntity
{
public virtual int Id { get; protected set; }
public virtual string Type { get; set; }
public virtual string Source { get; set; }
public virtual string OperationType { get; set; }
public virtual bool IsVisible { get; set; }
public virtual DateTime? Timestamp { get; set; }
public virtual string ContentId { get; set; }
public virtual int Priority { get; set; }
}
Вопрос:
Есть ли способ сбросить это expected
значения, так что я могу продолжать извлекать значения без исключения?
Конечно, сущности удаляются из таблицы, но я продолжаю получать исключения. Использование пустого предложения catch
для игнорирования этих исключений не является для меня решением.
EDIT:
Addtional информация: эта таблица очереди в течение длительного запущенного процесса, он не имеет дочерних таблиц, только несколько вещей, которые полезно для обслуживания. Отправленные отображения. Это происходит через некоторое время, а не после первого удаления.
Почему не получить запись с 'Session.Get'? –
@ AlessandroD'Andria в этом случае не имеет никакого значения, но спасибо за подсказку. – wudzik
Есть ли у этого лица дети? Можете ли вы показать нам свои сопоставления? –