问题:
我收到错误:
批量更新从更新返回了意外的行数;实际行数:0;预期:1
当某个实体在 fetch 和 delete 之间被删除时。在任何下一个删除行计数和预期上升之后,例如:
批量更新从更新返回了意外的行数;实际行数:11;预计: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();
我试图用 transaction 包装我放在这里的整个代码,而不是_session.Flush()
我 putted transaction.Commit()
。
映射:
这是通过代码映射
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
子句忽略此异常对我来说不是解决方案。
编辑:
附加信息:该表是长时间运行进程的队列,它没有子表,只有一些对服务有用的东西。发布映射。它会在一段时间后发生,而不是在第一次删除之后发生。