NHibernate源码学习笔记

http://www.mouhong-lin.net/post/2009/04/30/NHibernate-source-code-Criterion-SqlString-SqlTypes.aspx

1. ICriteria, ICriterion

ICriteria是用来查询实体的,ICriterion表示一个完整SQL查询的“一部分”,ICriteria可通过组合多个ICriterion来表示一个复杂的查询(在英语中,Creteria是Creterion的复数形式)。

ICriteria接口的注释:Criteria is a simplified API for retrieving entities by composing Expression objects.

ICriterion接口的注释:An object-oriented representation of a query criterion that may be used as a constraint in a ICriteria query.

Expression继承于Restrictions,它们充当了工厂的角色,利用它们的工厂方法,可以得到实现了ICriterion接口的类(这些类表示一个标准查询)。

不理解ICriterion以及什么叫“一个标准查询”?看看ICriterion的几个实现类便知(此列举的类不是ICriterion直接子类):
LikeExpression:用来表示sql的like查询子句;
OrExpression:用来表示sql的or查询子句;
InExpression:用来表示sql的in查询子句;
......

这么看来,ICriterion就是一个sql查询(注意,是查询)的一个部分,而Criteria则可以表示一个完整的查询,于是,可以在 ICriteria中找到一个方法:List(),它返回查询的结果实体集。当然,还有UniqueResult方法,它只查询一个实体。而 ICriterion不是完整的查询,当然也就没有什么List(),UniqueResult之类的方法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值