我在Razor視圖中創建了以下代碼。Razor Dynamic Query&WebCache
var Db= Database.Open("db");
var results = from t in Db.Query("up_rpt_hourlysales_today")
group t by t["Channel"];
我使用的數據與用下面的代碼...
@foreach (var c in results){
var htmlKey = Server.UrlEncode(c.Key);
<p><a href="@htmlKey" data-role="button">@c.Key</a></p>
}
我想用這樣的WebCache我添加以下代碼。
var cacheItemKey = "Sales";
var cacheHit = true;
var results = WebCache.Get(cacheItemKey);
if (results == null) {
cacheHit = false;
}
if (cacheHit == false) {
var Db= Database.Open("db");
results = from t in Db.Query("up_rpt_hourlysales_today")
group t by t["Channel"];
WebCache.Set(cacheItemKey,results, 5,false);
}
緩存代碼工作得很好,但在結果的時候作用中我試圖訪問項目的動態屬性時,得到一個錯誤。
「對象」不包含「鍵」
的定義,我認爲,這是因爲inital返回結果類型爲空,而不是更新的動態類型,當我使用的結果設置爲它LINQ查詢。
除了設置類型結果有沒有辦法圍繞這個?
感謝
布倫特
** ** BTW:你」重新從視圖直接訪問數據庫?這是最好的建築嗎?難道你不能在控制器上執行它,只是將你的items集合傳遞給視圖? –
如果我有比僅這一個頁面更多的情況是真實的......複雜的複雜性的緣故 – Brent