以下可以做吗?我知道域模型永远不应该在视图中使用,但是在视图模型中使用域模型是否可以?对于一些非常小的模型,为它们创建和管理视图模型似乎并不值得.
例如
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)
我个人在视图中使用域模型,如果它们自然是完全合适的话.这可能只发生在CRUD本质上的琐碎项目上(以直接的方式编辑域实体).为了纯洁,我发现创建域实体的精确副本是浪费时间.
我永远不会修改域模型以满足视图的需要.在95%以上的项目中,这就是我自己所处的环境.当您为了视图而污染域名时,您会引入可维护性问题.