我們可以使用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()等在結果集中查詢。