Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在具有视图模型的mvc中首先使用实体框架代码?_Asp.net Mvc_Entity Framework_Asp.net Mvc 4_Entity Framework 4 - Fatal编程技术网

Asp.net mvc 在具有视图模型的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

所以,当在mvc中首先实现实体框架代码时,我们是否将视图限制从视图模型中分离出来?这是因为对于database first,模型是生成的(所以我看到了将其分离以查看模型的原因,但代码优先如何?)

接下来我要问的问题是,可以将视图模型分离到另一个文件夹中吗?由于默认情况下asp.net是MVC,因此内部没有视图模型

模型第一个问题:

您应该使用分部类和元数据来分离,如下所示:

[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; }
   }
}