一级缓存可以与 ICriteria 或其他 API 一起使用吗?
在 NHibernate
中,使用 Load
或 Get
方法时,您可以轻松地从一级缓存中受益。但是 ICriteria
、HQL
、Linq-to-NHibernate
和 QueryOver
又如何呢?他们也使用一级缓存吗?
In NHibernate
you can easily benefit from first level cache when using Load
or Get
methods. But what about ICriteria
, HQL
, Linq-to-NHibernate
and QueryOver
? Do they use first level cache too?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
他们使用它来返回实体,但查询会直接进入数据库,除非您使用二级缓存。
考虑一下:
执行两个查询(一个用于 Get,一个用于 Query),但两个变量都包含相同的对象引用。
现在,如果启用二级缓存、查询缓存,并为查询指定缓存:
只会执行一个查询。
They use it for returning entities, but the queries go straight to the db unless you use the second level cache.
Consider this:
Two queries are executed (one for the Get, one for the Query), but both variables contain the same object reference.
Now, if you enable the 2nd level cache, query caching, and specify caching for the query:
Only one query will be executed.
不,据我了解,他们没有。他们只使用二级缓存。一级缓存仅用于
Get
和Load
。No, as I understand they don't. They use only second level cache. Firs level cache is only for
Get
andLoad
.