3

NHibernate が通常のステートメントINSERTではなく、sqlite のINSERT OR REPLACEステートメントを使用するように強制する必要があります。

を使用するときに可能であることはわかっていClassMap<>ますSqlInsert("INSERT OR REPLACE...")が、100 を超えるエンティティがあり、すべてのマッピング クラスに追加するつもりはありません。

別の簡単な方法でそれを行う方法を知っている人はいますか?

4

1 に答える 1

0

INSERT OR REPLACEは、どの列が一意であるかという情報を必要とし、挿入または置換を使用するかどうかを決定します。NHibernateには特殊すぎるため、このための組み込みメカニズムはありません。最も簡単な方法は、重複キーの例外を保存または処理する前にクエリを実行することです(ISqlExceptionConverterがここで役立ちます)

于 2013-01-07T10:12:20.520 に答える