我需要使用nHibernate检索表中的所有记录。如果我有表中所有记录的密钥,我可以循环并使用nHibernate的Get
方法(虽然这似乎效率低下),但我没有密钥。我也可以使用FindAll
,但这需要标准或存储过程。
如何从表格中获取所有记录?
答案 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