MVC数据设计决策

时间:2017-05-03 14:05:11

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我目前正在设计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的新手,只是想知道这种情况下的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

永远不要将您的视图绑定到EF实体。相反,创建具有所需属性的视图模型类,并将EF实体转换为这些VM(您可以手动或在自动映射器的帮助下)。然后,您的视图可以绑定到您的视图模型。

控制器的工作是构建视图模型并将其发送到视图引擎进行渲染。因此,视图必须期望视图模型准备好呈现。