程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> NBearV3教程——Cache篇

NBearV3教程——Cache篇

編輯:關於.NET

版本

1.0 [2006-11-18]

簡介

本教程介紹NBearV3中的查詢緩存支持。

目標

通過本教程,讀者應能夠全面掌握內置於NBearV3的查詢緩存的使用。

代碼

本教程不包含任何演示代碼。

時間

<10分鐘。

正文

1 配置及啟用NBearV3中的緩存功能

要啟用緩存支持,需要在Web.config或App.config中添加cacheConfig配置節:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
  <section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
  <section name="cacheConfig" type="NBear.Data.CacheConfigurationSection, NBear.Data" />
</configSections>
<entityConfig>
  <includes>
   <add key="Sample" value="C:\Teddy\NBearV3\src\NBear.Test.UnitTests\EntityConfig.xml" />
  </includes>
</entityConfig>
<cacheConfig enable="true">
  <cachingTables>
   <add key="Northwind.Orders" value="5" />
  </cachingTables>
</cacheConfig>
<connectionStrings>
  <add name="Northwind" connectionString="Server=(local);Database=Northwind;Uid=sa;Pwd=sa" providerName="NBear.Data.SqlServer.SqlDbProvider"/>
</connectionStrings>
</configuration>

注意代碼中粗體的部分,首先在

注意代碼中粗體的部分,首先在

configSections中添加cacheConfig這個section。接著,添加一個cacheConfig配置節,其中的cachingTables中可以有多個add,每一個add中,key的值格式為AAA.BBB;value代表緩存有效的時間長度,單位為秒。

AAA代表對應的ConnectionString中的name。比如這裡的Northwind代表了名為Northwind的ConnectionString。

BBB代表數據庫中實際的表名、視圖名或存儲過程名。

2 在代碼中啟用、禁用和使用自動緩存

一旦如上配置了啟用緩存,則默認情況下,所有的NBear.Data.Gateway實例,默認將是開啟了自動緩存功能的。相應的表、視圖或存儲過程被查詢時,如果在config中設置為需要緩存的,則會被緩存。可以調用Gateway.TurnOnCache()和TurnOffCache()方法開啟和關閉一個Gateway的緩存支持。

在兩種情況下,自動緩存會自動過期失效。一是被緩存的數據超過config中設置的緩存過期時間;二是,指定的過期時間還沒到,但是,此時執行了對該實體的強類型寫操作。所謂強類型寫操作,指Gateway.Delete/Save/BatchDelete/BatchUpdate等這些帶范型參數列表EntityType的范型方法。

注:所有緩存數據是作為一個Gateway的靜態變量,對所有的Gateway可見並共享的。也就是說,即使有多個Gateway實例,他們共享所有的緩存數據。並且,即使一個禁用了緩存的Gateway實例,對他執行的強類型寫數據庫操作,也會導致全局的Gateway緩存中的對應實體的緩存數據過期。

3 在代碼中使用自定義緩存

除了默認的自動緩存之外,也可以手動的使用自定義緩存。任何時候,我們都可以使用任何Gateway實例的AddCache()/GetCache()/RemoveCache()和RemoveCaches()方法手動讀寫和刪除緩存對象。

//正文結束

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved