web-dev-qa-db-ja.com

nHibernateを使用してテーブル内のすべてのレコードを取得します

NHibernateを使用してテーブル内のすべてのレコードを取得する必要があります。テーブル内のすべてのレコードのキーがあれば、ループしてnHibernateのGetメソッドを使用できますが(これは非効率的なようです)、キーがありません。 FindAllを使用することもできますが、これには基準またはストアドプロシージャが必要です。

テーブルからすべてのレコードを取得するにはどうすればよいですか?

21
brainimus

SQLテーブルはクラスにマップされるため、テーブルからすべてのレコードを取得するには、このテーブルにマップされた特定の型のすべてのオブジェクトをフェッチするクエリ(HQLまたはCriteria)を記述します。

var products = session.CreateCriteria<Product>().List<Product>();

またはHQLを使用する:

var products = session.CreateQuery("from " + typeof(Product)).List<Product>();

またはLINQ:

var products = session.Linq<Product>().ToList() // 2.x contrib provider
var products = session.Query<Product>().ToList() // 3.x integrated provider
39
Darin Dimitrov