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

bra*_*mus 21 nhibernate

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

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

Dar*_*rov 38

SQL表被映射到类,因此为了从表中检索所有记录,您可以编写一个查询(HQL或Criteria)来获取映射到该表的给定类型的所有对象:

var products = session.CreateCriteria<Product>().List<Product>();
Run Code Online (Sandbox Code Playgroud)

或使用HQL:

var products = session.CreateQuery("from " + typeof(Product)).List<Product>();
Run Code Online (Sandbox Code Playgroud)

或LINQ:

var products = session.Linq<Product>().ToList() // 2.x contrib provider
var products = session.Query<Product>().ToList() // 3.x integrated provider
Run Code Online (Sandbox Code Playgroud)