2013-10-10 33 views
0

我最近跟着這tutorial,它很好地演示瞭如何創建一個簡單的ASP.NET MVC 4應用程序,首先使用EF5代碼修改數據庫的內容。我有2個問題:使用'Model'類作爲域實體

  1. 在已完成的解決方案,也有實體沒有映射或域類。 EF是否有效地使用Model類來自動生成這些類?如果是這樣,這種方法有什麼缺點嗎?
  2. 使用nHibernate可以實現類似的功能嗎?即是否有可能/建議使用傳遞給視圖的相同類作爲生成數據庫模式等的模型?如果是這樣,我將如何去做這件事?

回答

0

請記住,本教程旨在爲您提供使用MVC4 & EF5完成任務的最快方法。在這種情況下,EF將使用Convention.來創建數據庫,設置表之間的關係,設置主鍵,......這就是爲什麼根本沒有映射類。
在本教程中,您的EF實體被用作域類和視圖模型。這顯然不是尊重SRPSOC原則的最佳方式。但有時候,它可能適合您的需求!

記住KISS原則總是一件好事,並且爲了避免在應用程序中放置太多的抽象和圖層。如果你的應用程序是這樣的,那就好了。當需要將不同層次的事物分開時,爲了滿足任何業務需求,重構將幫助您解決問題!

EF提供了2種其他方式將實體映射到DB對象AnnotationsFluent API。註釋很酷,因爲屬性與MVC共享以啓用客戶端驗證,但它有一些限制,這就是Fluent API的幫助。

我會在最後建議的是保持簡單。在大型應用程序中,可能更容易擁有單獨的視圖模型,並將其映射到您的業務服務在模型構建器圖層中返回的域實體。但是對於不應該經常改變的小應用程序,爲什麼不像教程中那樣爲視圖模型和域使用相同的實體?

這是我所做的一個link to a recent EF training,您可能會發現一些有用的信息可以更進一步。

相關問題