Http://www.cnblogs.com/lyj/archive/2008/11/28/1343418.html
You can define a named query in a mapping file The,<query> element provides a number of attributes that can be used to cache the results.
Define a query named Selectcustomer in the Customer.hbm.xml mapping file because the cache mode is the default by querying all the Customer and enabling cache queries (described below)
<query cacheable ="true" cache-mode="normal"name= " Selectcustomer " > from Customer</query>
Write a method:
[Test] Public voidnamedquerycachetest () {using(_session) {Console.WriteLine ("---> Use named queries for the first time"); IList<Customer> customers = _session. Getnamedquery ("Selectcustomer") . List<Customer>(); } resetsession (); using(_session) {Console.WriteLine ("---> second time using named Queries"); IList<Customer> Customers = _session. Getnamedquery ("selectcustomer" ) . List<Customer>(); }}
Queries provided by NHibernate (HQL, conditional queries, native SQL queries) are similar