MVC开发表示数据库对象和页面模型对象的最佳实践

时间:2014-03-03 23:07:41

标签: asp.net asp.net-mvc-3 razor

我有MVC 3网络应用程序,我从DB获取记录,用于呈现页面元素并填充不同的部分视图。

我有代表这些DB对象(服务层)的类。

我还有一组独立的类,它们将控制器返回的模型保存到视图中。

在我的控制器中,我查询返回对象的DB以表示DB记录。

然后我将DB Object转移(MAP)到表示视图使用的模型的对象

这些类很大,我必须在控制器中编写大量代码才能映射。

在大多数情况下,我只有一些不同的属性。

执行此映射似乎还有很多工作要做。大量代码进行映射

这就是我要问的原因。

这是在MVC框架中开发的正确设计方法吗?

如果不是,那么你是否有一些指导概述了这方面的最佳实践。

2 个答案:

答案 0 :(得分:2)

Model或ViewModel应该只包含View使用的信息。在某些情况下,这几乎与从数据库中获取的对象相同,但情况并非总是如此。将这些问题分开是有好处的,原因有很多,超出了stackoverflow答案的范围。另外,我希望您有一个单独的数据访问层,而不是直接从控制器查询数据库,实体框架或服务,只是为了将这些问题分开。

答案 1 :(得分:1)

您可以使用AutoMapper自动在数据库对象和视图模型之间进行映射。

示例:

SomeViewModel model = Mapper.Map<SomeViewModel>(someDbObj);

Getting started guide