public void SearchUser(
string userName,
int? age
) {
// 以 NHibernate 的动态查询示例
ISession session = OpenSession();
IQueryable<User> query = session.Query<User>();
// 根据参数动态构建表达式树
if (userName.IsNotNullOrEmpty()) {
query = query.Where(user => user.UserName.Contains(userName) )
}
if (age.HasValue) {
query = query.Where(user => user.Age >= age);
}
// 可以先根据构造好的表达式树进行 Count 查询
long userCount = query.LongCount();
// 也可以继续添加其它表达式,并查询结果
IList<User> users = query.OrderBy(user => user.Id)
.Select(user => new User { Id = user.Id, UserName = user.UserName })
.ToList();
}
Last active
December 3, 2020 09:38
-
-
Save beginor/4bc9bfd25dfd9f488156cf4975b707f6 to your computer and use it in GitHub Desktop.
dynamic query demo
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
我已经参考了流行的所有ORM 框架了,也读了他们的代码,就靠这两点,使开发效率提升了很多,后期将项目稳定后,一定能超越这些框架