Asp.net mvc 在具有视图模型的mvc中首先使用实体框架代码?
所以,当在mvc中首先实现实体框架代码时,我们是否将视图限制从视图模型中分离出来?这是因为对于database first,模型是生成的(所以我看到了将其分离以查看模型的原因,但代码优先如何?) 接下来我要问的问题是,可以将视图模型分离到另一个文件夹中吗?由于默认情况下asp.net是MVC,因此内部没有视图模型 模型第一个问题: 您应该使用分部类和元数据来分离,如下所示:Asp.net mvc 在具有视图模型的mvc中首先使用实体框架代码?,asp.net-mvc,entity-framework,asp.net-mvc-4,entity-framework-4,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Entity Framework 4,所以,当在mvc中首先实现实体框架代码时,我们是否将视图限制从视图模型中分离出来?这是因为对于database first,模型是生成的(所以我看到了将其分离以查看模型的原因,但代码优先如何?) 接下来我要问的问题是,可以将视图模型分离到另一个文件夹中吗?由于默认情况下asp.net是MVC,因此内部没有视图模型 模型第一个问题: 您应该使用分部类和元数据来分离,如下所示: [MetadataType(typeof(StudentMD))] public partial class Studen
[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映射到viewmodel我可以知道元数据注释用于分离的用途吗?而且,如果以这种方式首先对代码执行(将模型与视图模型分开),这不是重复吗。因为在database first中,如果数据库发生更改,将生成类,但在code first中,我们直接在codeFirst中修改问题:因为当您修改数据库时,您首先使用DB中的代码来修改更改。您将丢失一些数据注释,如[DisplayName(“fullname”)]。第二:如果使用元数据注释,它不会重复。
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; }
}
}