首先在mvc中使用实体框架代码与视图模型?
问题描述:
所以当在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; }
}
答
第一个问题:
您应该使用部分类和元数据到单独的,就像下面:
[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; }
}
}
第二个问题:
这是确定添加一个文件夹名“视图模型”
我做到了,在我的项目呢!
答
您在mvc视图中使用的模型是viewmodel。
您的模型坚持在数据库中是域模型。
您的域模型可能有一些属性,您不需要在您的客户端中使用它。
你的服务层必须返回DTO(数据传输对象)到客户端,你可以映射DTO到视图模型。
我可以知道元数据注释的用法是什么?另外,如果以这种方式进行代码优先(视图模型中的单独模型),它不会重复。因为在数据库中首先会在数据库发生变化时生成类,但是在代码中,我们首先直接修改代码 – myfinite 2014-10-05 03:58:54
第一个问题:因为当您修改数据库时,并且首先使用DB中的代码修改更改。你会缺少像[DisplayName(“fullname”)]的一些Datannotations。 第二:如果您使用元数据注释,它将不会重复。 – 2014-10-05 04:10:36