当前 MyNHibernate 项目中已经添加了 System.Linq.Dynamic.DynamicQueryable 类.
添加
using System.Linq.Dynamic 就可以使用 dynamic linq了.
例子:
var students = session.Query<Student>().OrderBy("Name").ToList();
students = session.Query<Student>()
.Where(x => x.Name.ToLower().Like("%abc%"))
.OrderBy("Teacher.Name desc, Name asc")
.ToList();
students = session.Query<Student>()
.Where(x => x.Name.ToLower().Like("%abc%"))
.ProcessOrderbyAndPager("Teacher.Name","desc","Name","asc",20,5)
.ToList();
//这不是Nhibernate的例子. 但使用方法应当类似.
var query = db.Customers.Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("New(CompanyName as Name, Phone)");