我有一个4层(项目)解决方案。
正如我所说,我有一个单独的EFL层,因此我不知道如何在MVC中使用模型的好处?例如,我无法在EFL层中编写<required>
或<Display(Name:="username:")>
等验证注释,因为如果我再次从数据库生成模型,它们可能会删除。即使我这样做我怎么可以使用MVC的Model文件夹?
如果我创建一个与EFL类相同的类,我需要编写大量代码来将这些类转换为彼此。
我可以使用什么结构的MVC模型?并将它们与Entity Framework类结合起来?
答案 0 :(得分:1)
MVC中的M对我来说是视图模型。这意味着它包含视图中使用的实体(针对这些视图进行了优化);它们是基于您从业务层接收的实体在控制器中构建的,并且看起来与视图模型实体完全不同。
答案 1 :(得分:1)
考虑以下问题:
如果您的答案是可能的那些变化,那么您需要隔离特定于框架的框架。您可以通过使用一系列具有框架中性概念的基类来实现此目的,然后根据需要添加或删除特定于框架的派生类。例如。 EfCustomer
或HibernateCustomerRepository
。
如果这些变化不太可能,那么我会质疑分层方法实际提供的价值,并且我不会太担心用特定于框架的概念来装饰类。我的目标是尽可能保持简单和干燥。