DetachedCriteria 和 ICriteria 之间有什么区别
这些类有一些类似的方法,但工作方式似乎略有不同。
它们之间有什么区别,什么时候应该使用它们?
These classes have some similar methods but seem to work slightly different.
What's the difference between them and when should I use each of them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以在不引用
ISession
的情况下建立分离的条件。您稍后可以采用该条件并将其应用于ISession
以获取可执行的ICriteria
。当您进行会话时,请使用
ICriteria
。当您不确定将针对哪个会话执行查询时,请使用
DetachedCriteria
。请注意,
DetachedCriteria
不实现ICriteria
——它们不可互换。您必须始终调用detachedCriteria.GetExecutableCriteria(session)
来获取ICriteria
实例。Detached criteria can be built up without reference to an
ISession
. You can later take that criteria and apply it to anISession
to get an executableICriteria
.Use
ICriteria
when you have a session.Use
DetachedCriteria
when you're not sure against what session the query will be executed.Note that
DetachedCriteria
does not implementICriteria
-- they are not interchangeable. You must always calldetachedCriteria.GetExecutableCriteria(session)
to get anICriteria
instance.