2011-03-30 145 views
0

我正在使用來自不同實體的數據以及顯示當前日期的MVC應用程序。我想從控制器傳遞這些數據來查看。我應該創建一個實體來存放其他實體嗎?EF 4.1中的多個實體

回答

0

我會做的是創建一個ViewModel,它只保存視圖的特定信息,而不是整個實體。

1

您可以製作一個視圖模型,並將此視圖模型中的所有內容放入視圖中。

public class MyViewModel 
{ 
    Entity1 Ent{get;set;} 
    Entity2 Ent2{get;set;} 
    DateTime CurrentDate{get;set;} 
} 

public ActionResult index() 
{ 
    MyViewModel model = new MyviewModel(); 
    model.Ent = new Entity1(); 
    model.Ent2 = new Entity2(); 
    model.CurrentDate = DateTime.Now; 
    return View(model) 
} 

您的視圖現在必須接受VieModel而不是db生成的實體。鑑於你可以訪問像

<%:Model.Ent1.SomeProperty%> 
<%:Model.CurrentDate%> 
<%:Model.Ent2.SomeProperty2%> 
+0

@adeel:我應該把邏輯從db中獲取數據並在viewmodel中填充entities/viewmodel? – DotnetSparrow 2011-03-30 08:30:37

+1

@DotnetSparrow你應該把你的控制器的Action方法中的邏輯。這並不意味着你直接在控制器中訪問數據庫對象。你應該創建一個將對象返回給調用代碼的圖層。如果您還不熟悉它,請參閱存儲庫模式 – 2011-03-30 09:18:53

0

你真的需要一個單獨的實體嗎?我得到的是爲什麼不創建一個匿名對象,它返回所需的實體或只是所需的屬性。每個數據場景都有一個實體可能會出現潛在的問題。

相關問題