我们可以使用CreateCriteria进行查询,可以对查询到的数据进行过滤等操作。
IList list=session.CreateCriteria(typeof(User)).List<User>();
这样我们可以查询到所有的User对象,返回一个IList<User>
不仅如此,我们还可以对IList<User>进行过滤,从中获取到我们需要的数据。
IList list=session.CreateCriteria(typeof(User)).List<User>().Add( Expression.Like("Name","admin%"));
这样就可以在结果集中进行模糊查询,查询出Name字段中包含admin的数据。
同样的还可以进行Eq(),IsNull(),In(),等方式过滤,查询字段等于某一固定值的,获取空字段,In字句等。
Nhibernate还提供了直接使用SQL来进行过滤或者查询sql()。
这样的方法除了过滤,还可以用来排序,IList list=session.CreateCriteria(typeof(User)).List<User>().AddOrder( Order.Asc("ID"))
根据ID进行排序。
获取到了IList后我们还可以对IList进行处理,
list.Take(1).SingleOrDefault();
这样我们可以获取到结果集中的第一条数据。
当让我们还可以使用where(),Select()等在结果集中查询。