我目前正在设计MVC应用程序。
在通过原型运行某些测试时,我遇到了一些数据处理方式的问题。
这是一个简单的DB diagram
在处理我的原型时,我注意到当Entity Framework从SQL构建所有必需的模型时,它会创建一个从Employee_Table到Job_Position_Link_Table的ICollection关系。如果视图强类型为Employee_Table,则无法直接在Job_Position_Link_Table中访问属性。另外,我也无法访问Job_Position_Title_Table。我考虑为此问题创建一个ViewModel,但在使用ICollection时无法找到有关如何创建ViewModel的好教程。大多数教程都是基于代码的第一种方法,我正在处理一个继承的数据库。
我想到的另一个解决方案是在SQL中创建我的所有视图,然后将它们传递给MVC。
我还是MVC的新手,只是想知道这种情况下的最佳做法是什么?
答案 0 :(得分:1)
永远不要将您的视图绑定到EF实体。相反,创建具有所需属性的视图模型类,并将EF实体转换为这些VM(您可以手动或在自动映射器的帮助下)。然后,您的视图可以绑定到您的视图模型。
控制器的工作是构建视图模型并将其发送到视图引擎进行渲染。因此,视图必须期望视图模型准备好呈现。