問題:
エラーが発生します:
バッチ更新は、更新から予期しない行数を返しました。実際の行数: 0; 予想: 1
フェッチと削除の間にエンティティが削除されたとき。次の削除行数の後、予想される値は次のように増加します。
バッチ更新は、更新から予期しない行数を返しました。実際の行数: 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();
_session.Flush()
ここに置いたコード全体をtransactionでラップしようとしました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
この例外を無視するために空の句を使用することは、私にとって解決策ではありません。
編集:
追加情報: このテーブルは長時間実行されるプロセスのキューです。子テーブルはなく、サービスに役立つものはほとんどありません。投稿されたマッピング。最初の削除後ではなく、しばらくしてから発生します。