Web 專案直接可用;非 Web 專案需自行實作 ICacheProvider 介面並註冊。
<configSections>
<section name="HxjCacheConfig" type="Hxj.Data.CacheConfiguration,Hxj.Data" />
</configSections>
<HxjCacheConfig enable="true">
<entities>
<add key="NorthwindConnectionString.Products" value="60" />
</entities>
</HxjCacheConfig>
<connectionStrings>
<add name="NorthwindConnectionString"
connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
enable="true":總開關,預設 false。entities/add@key:格式 連線字串名稱.實體類別名,必須精確對應。value:秒數(如 60)或檔案相依路徑(如 1.txt)。<add key="NorthwindConnectionString.Products" value="1.txt" />
程式啟動時檢查 ~/1.txt 是否存在,不存在則該配置失效。檔案異動 → 該實體所有快取失效。
List list = new List();
for (int i = 0; i < 2; i++)
list.Add(DbSession.Default.From().ToFirst()); // 第 1 次查 DB,第 2 次命中快取
for (int i = 0; i < 3; i++)
list.Add(DbSession.Default.From().ToFirst()); // 全部命中快取
若配置正確,實際只會對資料庫執行一次查詢。
From<T>() 產生的完整 SQL + 參數 快取。Where/OrderBy/Page 組合 = 不同快取項目。Refresh() 或檔案相依性觸發失效)。File.WriteAllText("trigger.txt", DateTime.Now.ToString()) 觸發失效。Hxj.Data 快取設計輕量、配置導向、零程式碼入侵,適合中小型 Web 專案快速提升讀取效能。