使用nHibernate检索表中的所有记录

时间:2010-06-16 13:08:46

标签: nhibernate

我需要使用nHibernate检索表中的所有记录。如果我有表中所有记录的密钥,我可以循环并使用nHibernate的Get方法(虽然这似乎效率低下),但我没有密钥。我也可以使用FindAll,但这需要标准或存储过程。

如何从表格中获取所有记录?

1 个答案:

答案 0 :(得分:37)

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