首页 > 代码库 > 01-08-03【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider之命名缓存

01-08-03【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider之命名缓存

http://www.cnblogs.com/lyj/archive/2008/11/28/1343418.html

 

可以在映射文件中定义命名查询,<query>元素提供了很多属性,可以用于缓存结果,

Customer.hbm.xml映射文件中定义名为selectCustomer的查询由于查询所有Customer并启用缓存查询,缓存模式为默认方式(下面有说明)

<query cacheable ="true" cache-mode="normal" name="selectCustomer">

  from Customer

</query>

 

编写一个方法:

[Test]

public void NamedQueryCacheTest()

{

    using (_session)

    {

        Console.WriteLine("--->第一次使用命名查询");

        IList<Customer> customers = _session.GetNamedQuery("selectCustomer")

            .List<Customer>();

    }

    ResetSession();

    using (_session)

    {

        Console.WriteLine("--->第二次使用命名查询");

        IList<Customer> customers = _session.GetNamedQuery("selectCustomer")

            .List<Customer>();

    }

}

 

 NHibernate提供的查询(HQL、条件查询、原生SQL查询)都类似