Nhibernateは、レコードを挿入または更新するかどうかをどのように決定しますか?

StackOverflow https://stackoverflow.com/questions/3660496

  •  01-10-2019
  •  | 
  •  

質問

使用するとき Session.SaveOrUpdate(myEntity); Nhibernateは、新しいレコードを挿入するか、既存のレコードを更新するかをどのように決定しますか?

S#ARPプロジェクトで1つのオブジェクトを保存しながら問題があります。ストレージから取得され、セッション状態にいくつかのWebリクエストのために保存され、1つのプロパティが変更された状態でデータベースに保存されます(S#arpではありません [DomainSignature]).

実行時に、データベースを使用してデータベースから直接取得したばかりのバージョンで持続しようとしているオブジェクトを比較しました Equals() メソッドとそれがtrueを返します。ただし、オブジェクトはまだデータベースに新しい行を作成することになります。

アプリケーションの他の場所では、これは正常に機能していますが、Nhibがこれをどのように解決しているかについてのポインターを望んでいます。

役に立ちましたか?

解決

基本的に SaveOrUpdate() 識別子を探しています。識別子が存在する場合、データベースのレコードを更新します。識別子が存在しない場合、新しいレコードが作成されます。

しかし、セッションで何かファンキーなことが起こっているように聞こえます。試してみたいと思うかもしれません SaveOrUpdateCopy() これがあなたの問題を解決するかどうかを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top