1,示例:

using NHibernate.Criterion;

//初始化要查询的实体类
Refundment refundment = new Refundment { State=5};

//查询
IList<Refundment> refundments = NHibernateHelper.GetCurrentSession().CreateCriteria<Refundment>()
                    .Add(Example.Create(refundment).ExcludeNulls().ExcludeZeroes().IgnoreCase())
                    .List<Refundment>();

2,使用Example类做查询条件注意事项

1>实体类的时间类型处理

  • 如果Refundment 有事件类型字段CreateTime,那么在实体类中最好做如下处理:public virtual DateTime? CreateTime{ get; set; },之所以加一个“?”是为了让时间字段可以为空,不然有可能你在实例化对象时,时间字段会给默认值
  • 如果不想按照上面的做法,也可以参考如下操作example.ExcludeProperty(…)过滤掉某些字段

2>Example类的方法执行顺序:Example.Create(refundment).ExcludeNulls().ExcludeZeroes().IgnoreCase(),如果不幸将ExcludeZeroes()和ExcludeNulls()这2个方法执行顺序置换了,你将得不到正确的sql和结果集,可以自己测试。

3>Example.Create(refundment)中的实体类refundment不论主键Id是否赋值了,都会屏蔽掉,当然如果用查询条件,谁会吃饱着撑着用主键查询呢?

转载于:https://www.cnblogs.com/stealyouheart/archive/2010/12/21/1912478.html

NHibernate中Example类使用注意事项相关推荐

  1. 什么时候应该在C ++中使用类与结构?

    在哪种情况下,在C ++中使用struct比使用class更好? #1楼 它们是相同的东西,具有不同的默认值(对于class默认为private,对于struct默认为public),因此从理论上讲它 ...

  2. Javascript中的类实现

    Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门 ...

  3. NHibernate之旅(14):探索NHibernate中使用视图

    本节内容 引入 1.持久化类 2.映射文件 3.測试 结语 引入 在数据库操作中,我们除了对表操作,还有视图.存储过程等操作,这一篇和下篇来学习这些内容.这篇我们来学习怎样在NHibernate中使用 ...

  4. NHibernate中的API

    本篇文章介绍的是NHibernate的各种API及其作用. 下图描述了NHibernate的API在分层架构中的作用,下面将进行详细说明. NHibernate的接口大致分为四类: 1.  被应用程序 ...

  5. NHibernate之旅(7):初探NHibernate中的并发控制

    本节内容 什么是并发控制? 悲观并发控制(Pessimistic Concurrency) 乐观并发控制(Optimistic Concurrency) NHibernate支持乐观并发控制 实例分析 ...

  6. python类中没有属性_如何在python语言中在类中删除属性和添加属性

    在python语言中的类,可以使用class定义类,调用__init__方法进行初始化:默认传入self,可以在后面在添加几个属性.可以使用setattr()添加属性,也可以使用delattr()删除 ...

  7. C#中增量类功能的方式之 继承与扩展

    之前一次公司培训的时候,将它记录下来,https://www.cnblogs.com/AlvinLee/p/10180536.html这个博客上面比较全面. 1.扩展方法 扩展方法是一种特殊的静态方法 ...

  8. spring@Autowired的对象为null,非容器中的类如何调用容器中的类

    1.问题描述 我们平时使用@Autowired注入对象时,一般被注入的类都带有@Coponent.@Controller.@Service .@repository等注解才可以.注入类和被注入类都被s ...

  9. 一文读懂Java中File类、字节流、字符流、转换流

    一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...

  10. 广东省高考数学能用计算机吗,广东高考志愿填报:计算机类专业注意事项

    计算机类.师范类.财经类等专业,都是广大考生和家长的最佳意向专业,那么今天,小粤就给大家带来了:广东高考志愿填报:计算机类专业注意事项.和各位一起来讨论这些热门专业中的计算机类专业,报考门槛有多高?填 ...

最新文章

  1. 【C语言也能干大事】第五讲 组合框控件,下拉列表
  2. 首批国家级一流本科专业公布,至少64所高校计算机相关专业入选,AI专业不够推荐资格...
  3. RuntimeError: maximum recursion depth exceeded
  4. sum() over() 函数的使用
  5. IT项目管理总结:第一章 项目管理概述
  6. php魔术方法例子,PHP中魔术方法的使用举例
  7. android之常用知识点(一)
  8. 360画报屏保,放大营销“感官力”
  9. RabbitMQ和Kafka的显著差异(1)
  10. 看《烈火雄心》 --当大家从火里出来,我们进去
  11. 赌一把:整合了30家独立报告后,我发现了2020年的五大安全趋势
  12. 织云Lite发布:详解包管理核心能力
  13. 自动化运维工具ansible简介
  14. 我为中国火星第一图做鱼眼矫正
  15. mysql事务应该多复杂_可能是全网最好的MySQL重要知识点/面试题总结
  16. 港澳台、内地身份证号校验规则
  17. Vero tempora officia nesciunt unde consequuntuIncidunt voluptatem minus earum.r.
  18. 让ImageView尺寸适应图片比例和屏幕
  19. Linux刻录光盘win10认不到,Win10无法读取DVD光驱和刻录光盘怎么办 Win10不能读取DVD光驱和刻录光盘解决方法...
  20. Mysql 入门学习总结

热门文章

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类...
  2. ZT:Linux上安装JDK,最准确
  3. linux操作命令之压缩命令
  4. Applets 是什么 怎样使用 应用前景
  5. python socketserver并发实例
  6. CMD获取当前目录的绝对路径
  7. 技巧:linux开机自动启动脚本(转)
  8. Delphi创建ActiveX控件,实现安全接口及无界面代码
  9. 優利系統眾裡尋“她”
  10. Spring 定时器的使用(task)