2014-07-24 28 views
1

我需要從數據庫中獲取一些數據,並將其加載到db最初加載頁面時。具體而言,我無法找出正確的地點/方法來運行此方法。如果我把它放在我的ActionResult Index()(這是顯示數據的頁面),它可以工作,但我最終會在每個頁面刷新上輸出重複的所有值。什麼是正確的方法來做到這一點?正確的方法來加載數據庫中的數據一次在頁面加載MVC 4剃鬚刀

public class HomeController : Controller 
{ 
    private MyDataContext db = new MyDataContext(); 

    public void loadFromTable() 
    { 
     IEnumerable<Task> tasks = readAllEntities(); 
     foreach (Task item in tasks) 
     { 
      db.MyDatas.Add(item); 
      db.SaveChanges(); 
     } 
    } 
    ... 
+1

如果結果爲所有會話共享,則可以使用'Cache'。如果數據是用戶特定的,則可以使用'Session'。在這兩種情況下,我都會創建某種類型的管理器,將這些句柄放入緩存/會話中,並在被詢問值時檢查它們是否存在於緩存/會話中,如果不存在,則從數據庫中獲取它們。 –

+0

也許你也可以解釋一下你試圖達到什麼?對我來說db和數據庫的聲音很相似。 – codea

+0

@codea我試圖顯示一張我從azure表存儲數據庫中獲取的值,並且我的表格是從'db'變量中渲染的。 – Slicedbread

回答

2

所以我加入

if (db.MyDatas.Count() == 0) 
    loadFromTable(); 

到我的兩個兩種觀點解決了我的問題。如果任何人有更好的解決方案,我會很高興聽到它!

+0

適合我!爲什麼過度設計它!? :) 謝謝! – IfElseTryCatch