2011-03-10 49 views
0

我不能完全决定如何去分离我的视图模型和我的数据库模型。ASP.Net MVC如何从数据库模型中分离视图模型?

我为我的数据库访问使用ActiveRecord模式。这意味着我为数据库中的每个用户行获取一个User类实例。

在的WebForms我已经习惯了使用这些作为我的模型对象,在我的ActiveRecords实现大部分业务逻辑的直接。

我知道这是不完全的3层设计,我真的很想改善,那么,尤其是在MVC,它的关注点分离的同情态度。

所以我认为控制器不应该有访问我的数据库模型,但我怎么然后去从数据库中存储/加载数据?

这不是我印象中你应该把一个巨大的商业逻辑的量在您的视图模型要么,所以我总觉得我缺少一个中央一块拼图。

我正在寻找的是一些最佳实践的建议,我想:-)

我希望这一切是有道理的,否则请询问。

回答

2

我强烈建议在创建每个视图一个视图模型,并使用AutoMapper映射来自你的活动记录到您的视图模型的属性。我不相信你的控制器可以访问你的数据库模型有问题;控制器应该负责将它们翻译成视图模型。

至于翻译(真正发布的数据模型)回到活动记录,您可以使用AutoMapper该视图模型以及简单的情况下,和自定义代码的其余部分。

+0

听起来像一个好主意:-) – Steffen 2011-03-11 08:00:09

相关问题