【发布时间】:2011-06-29 09:39:43
【问题描述】:
我目前正在使用 EF4 和 asp.net mvc 3,当您将这些技术结合在一起时,我在处理可能出现的不同类型的模型时肯定会遇到一些麻烦。
我有一个我已经定义的数据库,并且通过 EF4 我有一个我的数据库模型。但是也有模型传递给我的视图,那么视图模型呢???
假设我有一个项目的 mvc 模型。该项目具有描述、名称和类别属性。我有一个视图页面,它创建一个项目并将其返回给控制器,以便通过 ef4 插入到数据库中。所以我最初创建了一个具有这些确切属性的类作为我的模型。但是,在创建该项目时,我的页面还需要一个可供选择的类别列表,因此我在模型中添加了一个字符串数组,该数组与其他属性一起作为我的项目模型的一部分传递给页面,并且运行良好。一切都很好......但我开始思考......因为如果项目模型为项目建模,那么它不应该有完整的类别列表。它应该只具有属于该项目的类别。
但是这个完整的类别列表到哪里去了。在视图包中?这对我来说似乎不正确?我应该创建一个视图模型吗?这个视图模型看起来如何?如何在项目模型中添加一个类似于 GetCategories() 的方法,然后我可以从视图页面调用这个方法......但这会破坏 mvc 中理想的关注点分离吗?
我相信很多人对这个主题会有不同的看法,但任何能帮助我度过这个烂摊子的评论都会有所帮助。
谢谢,
【问题讨论】:
标签: asp.net-mvc entity-framework model