MVC在视图模型中使用域模型

Pr0*_*r0n 11 c# asp.net-mvc

以下可以做吗?我知道域模型永远不应该在视图中使用,但是在视图模型中使用域模型是否可以?对于一些非常小的模型,为它们创建和管理视图模型似乎并不值得.

例如

public class LoginDomainModel
{
    public string Email { get; set; }
    public string Password { get; set; }
    public string DisplayName { get; set; }
    public long UserTypeID { get; set; }      
    public virtual UserType UserType { get; set; } 
}
public class UserTypeDomainModel
{
    public UserType()
    {
        this.Logins = new List<Login>();
    }
    public long UserTypeID { get; set; }
    public string UserType { get; set; }
    public string Description { get; set; }
    public virtual ICollection<Login> Logins { get; set; }
}

public class LoginViewModel
{
    public string Email { get; set; }
    public long UserTypeID {get; set;}

    //Right here
    public List<UserTypeDomainModel> UserTypesSelectList {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

Eri*_* J. 9

我个人在视图中使用域模型,如果它们自然是完全合适的话.这可能只发生在CRUD本质上的琐碎项目上(以直接的方式编辑域实体).为了纯洁,我发现创建域实体的精确副本是浪费时间.

永远不会修改域模型以满足视图的需要.在95%以上的项目中,这就是我自己所处的环境.当您为了视图而污染域名时,您会引入可维护性问题.