代码之家  ›  专栏  ›  技术社区  ›  Jack

在ASP.NET MVC中对多个模型使用ViewModel

  •  0
  • Jack  · 技术社区  · 6 年前

    在ASP.NET MVC中创建具有多个模型(实体)的ViewModel时,我使用以下方法:

    实体:

    public class Student
    {
        [Key]
        public int Id { get; set; }
    
        public string Name { get; set; }
    
        public string Surname { get; set; } 
    
        //Foreign key for Country
        public int CountryId { get; set; }
    
        public virtual Country Country { get; set; }
    }
    

    国家

    public class Country
    {
        [Key]
        public int Id { get; set; }
    
        public string Name { get; set; }
    
        public virtual ICollection<Student> Students { get; set; }
    }
    


    学生 视图模型:

    public class StudentViewModel
    {
        [Key]
        public int Id { get; set; }
    
        public string Name { get; set; }
    
        public string Surname { get; set; } 
    
        //Foreign key for Country
        public int CountryId { get; set; }
    
        public virtual Country Country { get; set; }
    }
    

    视图模型:

    public class CountryViewModel
    {
        [Key]
        public int Id { get; set; }
    
        public string Name { get; set; }
    
        //??? Should I use Student entity or StudentViewModel at here >>>
        public virtual ICollection<Student> Students { get; set; }
    }
    

    在这个阶段,我不确定是否应该在ViewModel中添加相关模型的实体或ViewModels。我使用Automapper并映射实体和viewmodels,但是我不想映射如下所示的每个属性,并且希望合并ViewModel类中的模型。。。

    CreateMap<Student, StudentViewModel>()
       .ForMember(dest => ...)
       .ForMember(dest => ...)
       .ForMember(dest => ...)
    

    那么,您能告诉我如何正确地合并viewmodel中的多个实体吗?

    0 回复  |  直到 6 年前