【发布时间】:2010-06-16 23:23:23
【问题描述】:
我需要使用 nHibernate 检索表中的所有记录。如果我有表中所有记录的密钥,我可以循环并使用 nHibernate 的 Get 方法(虽然这似乎效率低下)但我没有密钥。我也可以使用FindAll,但这需要条件或存储过程。
如何获取表中的所有记录?
【问题讨论】:
标签: nhibernate
我需要使用 nHibernate 检索表中的所有记录。如果我有表中所有记录的密钥,我可以循环并使用 nHibernate 的 Get 方法(虽然这似乎效率低下)但我没有密钥。我也可以使用FindAll,但这需要条件或存储过程。
如何获取表中的所有记录?
【问题讨论】:
标签: nhibernate
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
【讨论】: