0

所以我有一個由EntityFramework4爲我的sqlexpress08數據庫生成的DataEntity類。此數據上下文通過WCF數據服務/ Odata暴露給silverlight和win表單客戶端。我應該在哪裏把EF實體和數據註釋放在asp.net mvc +實體框架項目中

數據實體+ edmx文件(由EF4生成)應該放在單獨的類庫中嗎?

這裏的問題是我會爲幾個實體指定數據註釋,然後其中一些需要特定的MVC屬性(如CompareAttribute),因此類庫也會引用mvc dlls。也有碰巧有實體用戶將被封裝或包裝到網站的IIdentity中。所以它很適合mvc網站。 或者它應該在mvc項目本身的Base文件夾中?

大多數情況下,網站是圍繞數據庫驅動的數據,比如批准用戶,更改全局設置等。真正的業務發生在silverlight和win表單應用中。

我使用mvc3 rc2與剃刀。
感謝

回答

5

如果數據實體+ EDMX文件(EF4生成)在一個單獨的類庫中去?

恕我直言,特定於某些數據訪問技術(在你的情況下,實體框架)的所有數據訪問邏輯應該進入一個單獨的程序集。那裏不應該引用MVC特定的程序集。

在您的ASP.NET MVC應用程序中,您將引用此程序集並編寫視圖模型。這些視圖模型將包含任何MVC特定的屬性。然後,您可以在您的模型類和將傳遞給視圖的視圖模型之間進行映射。可以使用AutoMapper來促進這項任務。

+0

嗯我以前聽說過這個。還有一個問題,所以在我的Mvc項目中,我會擁有像'IRepository'這樣的實現,它會查詢實體對象,然後返回** ViewModels ** ?? – gideon 2010-12-21 13:43:37

+1

@giddy,IRepository不應該返回視圖模型。它應該與域模型一起工作。這些域模型和視圖模型之間的映射應由控制器執行。就其位置而言,恕我直言,它更適合您的數據訪問層,而不是您的MVC應用程序。 – 2010-12-21 13:46:11

+0

啊!好吧,我花了一段時間,但我明白了!獎勵積分! = d – gideon 2010-12-21 14:23:28

相關問題