ASp.NET MVC - 是否可以简化我的架构?

Fun*_*nky 7 c# model asp.net-mvc-3

我刚刚开始研究一个MVC项目,事情进展顺利,但看起来我正在用太多的对象创建很多意大利面条代码.在整个项目失控之前,有谁能看到我如何简化这个解决方案?

好的,这是我的设置:

DAL - 具有实体框架连接和方法以获取数据,然后将数据转换为模型层中的模型对象

BLL - 将数据发送回UI模型 - 这包含整个站点中使用的所有模型对象,通过创建新对象然后填充变量,将来自DAL的任何内容转换为这些对象.

UI - 我的MVC解决方案

DAL,BLL和Model也被其他解决方案使用.

现在使用MVC,我试图使用验证注释([Required]等),这意味着我必须使用注释重新创建模型对象.这很好但是如果我想将数据保存回数据库,我需要转换那些只是凌乱的类.

任何人都可以看到我如何使用我当前的模型类库与使用验证注释的MVC模型对象?

如果我没有清楚地解释自己,请告诉我,我会提供更多细节.

谢谢

Ali*_*tad 3

理想情况下,一方面需要与领域模型分离,另一方面需要与 MVC 模型(它们实际上是ViewModel )分离。这种分离确实至关重要,也是强烈建议的。

尽管 ViewModel 可以包含额外的内容,但在大多数情况下它们看起来非常相似。然后您可以使用AutoMapper从一种转换为另一种。

例如:

public class User // in entity DLL
{
    [Required]
    public string Name {get; set;}
}

public class UserViewModel : User // in MVC DLL
{
    public string LastVisitedPage {get; set;} // which only MVC needs to know
}

Mapper.Map<User, UserViewModel>();
Mapper.Map<UserViewModel, User>();
Run Code Online (Sandbox Code Playgroud)