2013-06-30 117 views
0

我正在寫一個小MVC應用程序來處理我運行的項目的時間表信息。它將被託管,我正在用UI /服務/數據層進行設計。我非常喜歡的一件事是,我可以在所有圖層中使用實體框架模型嗎?那麼,我想我可以,但我應該嗎?跨層使用實體框架模型?

所有圖層將被託管在同一臺機器上(除了實際的數據庫..)。但是,跨所有圖層訪問EF模型意味着包括UI在內的所有圖層需要引用數據庫層 - 繞過該服務。

這是一個安全的舉動?

也許我可以從EF中提取模型,並以共享庫的形式共享JUST中的那些圖層?

或者我應該咬緊牙關,實施DTO和翻譯?所以:

數據庫 - > EF - > TranslaterToDTO-> BusinessLogic-> ServiceLayer-> UI(TranslaterTOViewModel) - >查看

回答

0

其實EF模型你的商業模式。

EF已經在處理您的數據庫模型和您的業務模型之間的映射(EDMX的MSL部分或您的EntityMapping類,如果你到CodeFirst的話)。

只要你正在構建一個MVC應用程序,你應該有一個視圖模型。當請求遇到Contoller方法時,返回到View的Model應該由ModelBuilder構建。這取決於模型構建器來調用您的業務服務。該服務返回模型構建器將映射到正確的ViewModel的業務模型。
看看這個SO answer我在哪裏解釋如何使用ModelBuilder。