長話短說:我使用LINQ到SQL,但LINQ到SQL高速緩存的問題
我的應用程序元數據驅動的因與它的緩存問題,所以我不希望在高速緩存(在DB的變化應該是反映在網頁上刷新頁面)。有沒有辦法關閉緩存?或者重置緩存的方法(例如,當我更改數據庫中的數據時,我必須在看到結果之前在物理上更改代碼並重新編譯)。
最後一個C#的問題(希望我的一個基本錯誤)。 在下面的代碼,如果我跑method1
然後method2
然後doc2 == doc1
(我希望它從DB獲得原始值)
爲RecordDictionary
類轉動數據(所以並不直接涉及這似乎很奇怪,我到模型),並在我的代碼中分配在不同的控制器;但不知何故,LINQ to SQL是應用緩存更改doc1
並將它們應用到doc2
(如果我退出了我的應用程序,並重新編譯然後doc2
等於什麼,我希望它是(直到我改變doc1
)
人爲的例子
public RecordDictionary method1()
{
RecordDictionary doc1 = genericRepository.GetRecordById(
action.AppliesToModelEntityId, 27);
//do some stuff to doc1 here
return doc1;
}
public RecordDictionary method2()
{
RecordDictionary doc2 = genericRepository.GetRecordById(
action.AppliesToModelEntityId, 27);
return doc2;
}
public RecordDictionary GetRecordById(int ContainerModelId, int id)
{
var query = (from dv in _db.DataValues
where dv.DataInstance.IsCurrent == true &&
dv.DataInstance.DataContainer.DataContainerId == id
select new {
dv.DataInstance.DataContainer.ParentDataContainerId,
dv });
RecordDictionary result = CreateRecordColumns(
ContainerModelId, query.FirstOrDefault().ParentDataContainerId);
result.Id = id;
foreach (var item in query)
{
if (result.ContainsKey(item.dv.ModelEntity.ModelEntityId))
result[item.dv.ModelEntity.ModelEntityId] = item.dv;
}
return result;
}
Straight cache homie。 – jason 2010-01-06 04:51:41
你怎麼知道LINQ to SQL緩存? – Jacob 2010-01-06 05:00:54
因爲如果我直接對db進行更改,那麼這些更改不會反映迴應用程序。 – 2010-01-06 20:03:26