2011-02-01 1 views
0

私は、NHibernateを使ってデータベースにマッピングされる多くのプロパティを持つモデルクラスを持っています。私のNHibernateマップモデルクラスの軽量版をモデル化するためのショートカットはありますか?

プロパティの1つを取得して更新するためにのみ使用される同じクラスの軽量バージョンを作成したい場合は、NHibernateが提供するショートカットがありますか、新しいNHibernateで新しいクラスを作成するだけです私が興味を持っている1つのプロパティだけのマッピングファイル?

私がこれをやりたい理由は、データベースのパフォーマンスです。私は、特定の1つの列のみを更新するつもりであることを知っているたびに、10個のデータを取得する必要はありません。

答えて

0

皆さん、ありがとうございました。結局のところ、私たちはモデルクラスのカットダウンバージョンを作成しており、dbaは満足しています。

1

このためのショートカットはありません。別のクラスを独自のマッピングでマップする必要があります。しかし、あなたは馬の前にカートを置いているかもしれません。 NHibernateには多くのパフォーマンスチューニングが組み込まれていますが、そのうちの1番目と2番目のレベルのキャッシングが解決しようとしている問題の多くを軽減します。あなたが遅延読み込み機能を利用していると仮定すると、エンティティ上の単一のプロパティを更新することはNHibernateでかなり安いトランザクションです。

+0

ありがとう、私は最初にモデルクラスに移入するためにやっていることをもっと気にしています。 –

2

使用HQL:

session.CreateQuery("update TheEntity set TheProp = :newValue where id = :id") 
     .SetParameter("newValue", theValue) 
     .SetParameter("id", id) 
     .ExecuteUpdate(); 

ハックの必要はありません。

1

1つのプロパティの代わりに完全なオブジェクトを読み込むと、ほとんどの場合、ほとんど存在しません。ご心配なく。

+0

Jamesさん、私たちのDBAからのNH利用への抵抗に遭遇しており、これは彼らが提起した問題の1つです。 –

関連する問題