你的位置:首页 > 软件开发 > ASP.net > 使用 NHibernate 的示例查询

使用 NHibernate 的示例查询

发布时间:2016-03-23 09:00:08
示例查询最多的应用场合是组合查询,我们常常需要在界面上提供若干的查询选项,然后根据用户的输入返回符合条件的结果。使用代码直接进行处理往往需要涉及到复杂的条件,由于组合条件并不确定,导致逻辑判断语句结构复杂。对于多个可选的参数,情况会变得更加严重。使用示例查询可以很方便地处理这种问 ...

示例查询最多的应用场合是组合查询,我们常常需要在界面上提供若干的查询选项,然后根据用户的输入返回符合条件的结果。

使用代码直接进行处理往往需要涉及到复杂的条件,由于组合条件并不确定,导致逻辑判断语句结构复杂。对于多个可选的参数,情况会变得更加严重。

使用示例查询可以很方便地处理这种问题。

在查询的时候,将收集到的查询条件赋予一个对象的属性,当然,这个对象的类型就是需要查询的实体对象。

例如,在 NHibernate 中存在一个 User 的类型,我们需要对它的姓名和口令进行组合查询,User 的定义如下:

使用 NHibernate 的示例查询 public virtual Address Address { set; get; }
<p>
protected void btnSearch_Click(object sender, EventArgs e)    this.Repeater1.DataSource = list;  }
public IList<Demo.Dao.Domain.User> GetUsers( Demo.Dao.Domain.User exampleUser)  // 设置使用示例对象的查询条件  example.EnableLike(global::NHibernate.Criterion.MatchMode.Anywhere);  IList< Demo.Dao.Domain.User> list = criteria.List<Demo.Dao.Domain.User>();  return list;this_.Age as Age0_0_, this_.AddressId as AddressId0_0_ 使用排除 0 的设置现在的 SQL 又成为this_.Age as Age0_0_, this_.AddressId as AddressId0_0_ 不过,还有两个设置就要小心了。this_.Age as Age0_0_, this_.AddressId as AddressId0_0_ ExcludeNone() 方法,表示需要使用示例对象的所有属性,也会使得 ExcludeZeroes() 失效。this_.Age as Age0_0_, this_.AddressId as AddressId0_0_ 最后,还有一个 IgnoreCase() 方法, 使用不区分大小写的方法比较字符串,对于 Oracle 是有效的,对于 SQL Server 就用不到了。this_.Age as Age0_0_, this_.AddressId as AddressId0_0_ 

原标题:使用 NHibernate 的示例查询

关键词:Hibernate

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录