天天看点

CreateCriteria条件查询

我们可以使用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()等在结果集中查询。