gpt4 book ai didi

nhibernate - 一级缓存可以与 ICriteria 或其他 API 一起使用吗?

转载 作者:行者123 更新时间:2023-11-30 23:53:36 26 4
gpt4 key购买 nike

NHibernate使用 Load 时,您可以轻松受益于一级缓存或 Get方法。但是ICriteria呢? , HQL , Linq-to-NHibernateQueryOver ?他们也使用一级缓存吗?

最佳答案

他们使用它来返回实体,但除非您使用二级缓存,否则查询会直接进入数据库。

考虑一下:

var fooUsingGet = session.Get<Foo>(fooId);
var fooQueryById = session.Query<Foo>().Single(f => f.Id == fooId);

执行两个查询(一个用于 Get,一个用于 Query),但两个变量包含相同的对象引用。

现在,如果您启用二级缓存、查询缓存,并为查询指定缓存:
var fooQueryById = session.Query<Foo>().Cacheable()
.Single(f => f.Id == fooId);
var fooQueryByIdAgain = session.Query<Foo>().Cacheable()
.Single(f => f.Id == fooId);

只会执行一个查询。

关于nhibernate - 一级缓存可以与 ICriteria 或其他 API 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com