ISession 快取屬交易級、內建、生命週期隨 Session。操作資料時優先查快取,無則查庫並存入。
第一次查庫,第二次直接回傳快取物件(Assert.AreSame 通過)。

兩 Session 快取獨立,各自查庫一次,證明一級快取不共享。

| 方法 | 行為 |
|---|---|
Get(id) | 立即查庫,物件立即放入快取 |
Load(id) | 延遲載入:僅建立 Proxy,真正存取屬性時才查庫並放入快取 |
驗證:
Get:訪問 ID 與其他屬性皆只發一條 SQL。Load:訪問 ID 不發 SQL(Proxy 已知 ID),訪問其他屬性才發 SQL。

Evict(obj):移除指定實例Clear():清空快取Contains(obj):檢查是否在快取var c1 = session.Get<Customer>(1);
var c2 = session.Get<Customer>(2);
Assert.IsTrue(session.Contains(c1));
session.Evict(c1);
Assert.IsFalse(session.Contains(c1));
session.Clear();
Assert.IsFalse(session.Contains(c2));