2010-12-16 5 views
2

私は更新したいUserクラスを持っています。私のデータベースには、FirstNameとLastnameという2つの列を持つUserテーブルがあり、その中に空白文字を2つつなげたDisplayNameという計算列があります。私はユーザーオブジェクトを更新し、トランザクションをコミットするとのDisplayNameのためNHibernateのマッピングがNHibernateの更新により、行の計算カラムが選択される

<property name="DisplayName" type="string" generated="always"/> 

、NHibernateのは、DisplayNameプロパティにちょうど余分なSELECT文を実行している、私は同期オブジェクトとDBの行を保つためと推定します。オブジェクトが後で範囲外になるので、私はそれを必要としません。

NHibernateに、この時点で更新されたDisplayNameを取得する必要がないことを伝えるためにできることはありますか?

よろしく、 F.

+0

答えられませんが、その計算をUserオブジェクトの一部にしないのはなぜですか? (たとえば、FirstnameプロパティとLastnameプロパティを連結するc#プロパティ)。そうすれば、データアクセスレイヤーを使用する必要はありません。 – UpTheCreek

+0

これはマッピング内にあるので、displaynameに対して選択/検索できますか? – Phill

+0

@UpTheCreek - 私は同じことを言うつもりでしたが、私は彼がそれに対して照会しようとしていると考えました。私はクラス内のプロパティとして 'fullname'型のものを実行したことがありますが、マッピングの一部としては決して使用しませんでした。 – Phill

答えて

2

generated="always"はまさにその意味:「これはDBで、私はこの行を変更するたびに生成された値であり、私のためにそれを更新してください」。

NHには「特定の列が変更された場合にのみこれをリフレッシュする」という概念はありません。

私の意見では、DBではなくドメインモデルでその値を生成する必要があります。

+0

これで決定されました。みんなありがとう! – Michali

関連する問題