0

所以当在mvc中首先实现实体框架代码时,我们是否将视图限制从视图模型中分离出来?这是因为对于数据库第一模型生成(所以我看到的原因分开它查看模型,但如何处理代码第一?)首先在mvc中使用实体框架代码与视图模型?

我会问的下一个问题是可以将视图模型分开到另一个文件夹?因为默认asp.net是MVC里面没有视图模型

模型 < ---这是什么模型调用?数据模型?领域模型?商业模式?

public class Student 
    { 
     public int ID { get; set; } 
     [StringLength(250)] 
     public string LastName { get; set; } 
     public string FirstMidName { get; set; } 
     public DateTime EnrollmentDate { get; set; } 
    } 

视图模型

public class Student 
    { 
     public int ID { get; set; } 
     [MaxLength(250)] 
     [Required] 
     public string LastName { get; set; } 
     [Required] 
     public string FirstMidName { get; set; } 
     [Required] 
     public DateTime EnrollmentDate { get; set; } 
    } 

回答

0

第一个问题:

您应该使用部分类和元数据到单独的,就像下面:

[MetadataType(typeof(StudentMD))] 
public partial class Student 
{ 
    public class StudentMD 
    { 
    public int ID { get; set; } 
    [MaxLength(250)] 
    [Required] 
    public string LastName { get; set; } 
    [Required] 
    public string FirstMidName { get; set; } 
    [Required] 
    public DateTime EnrollmentDate { get; set; } 
    } 
} 

第二个问题:

这是确定添加一个文件夹名“视图模型”

我做到了,在我的项目呢!

+0

我可以知道元数据注释的用法是什么?另外,如果以这种方式进行代码优先(视图模型中的单独模型),它不会重复。因为在数据库中首先会在数据库发生变化时生成类,但是在代码中,我们首先直接修改代码 – myfinite 2014-10-05 03:58:54

+0

第一个问题:因为当您修改数据库时,并且首先使用DB中的代码修改更改。你会缺少像[DisplayName(“fullname”)]的一些Datannotations。 第二:如果您使用元数据注释,它将不会重复。 – 2014-10-05 04:10:36

1

您在mvc视图中使用的模型是viewmodel
您的模型坚持在数据库中是域模型

您的域模型可能有一些属性,您不需要在您的客户端中使用它。
你的服务层必须返回DTO(数据传输对象)到客户端,你可以映射DTO视图模型

相关问题