【问题标题】:Cannot implicitly convert type 'System.Collections.Generic.List<x>' to 'System.Collections.Generic.List<y>'无法将类型“System.Collections.Generic.List<x>”隐式转换为“System.Collections.Generic.List<y>”
【发布时间】:2018-01-28 20:43:56
【问题描述】:

我在 View_Model 层中使用了数据注释,当我尝试从模型中获取方法时,我的模型层中有我的实体,但出现此错误

无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List

这是我的 View_Model 层中发生错误的代码

    public Models.CRUD.Member Ref_CRUD { get; set; }

    public List<View_model.Entitys.Member> GetALLMembers()
    {
        Ref_CRUD = new Models.CRUD.Member();
        return (Ref_CRUD.Get_AllMemeberRecords());
    } 

这是我连接到数据库的模型层中的代码

    public List<EF_Model.Member> Get_AllMemeberRecords()
    {
        using (var context = new EF_Model.DigikalaHREntities())
        {
            var member = context.Members.OrderBy(i => i.Id).Select(i => i);
            return member.ToList();
        }
    }

【问题讨论】:

    标签: c# entity-framework generics viewmodel data-annotations


    【解决方案1】:

    例外是说明您的代码有什么问题。你为什么不这样做呢?:

    public Models.CRUD.Member Ref_CRUD { get; set; }
    
    public List<EF_Model.Member> GetALLMembers()
    {
        Ref_CRUD = new Models.CRUD.Member();
        return (Ref_CRUD.Get_AllMemeberRecords());
    } 
    

    【讨论】:

    • 那我该如何使用我的数据注释呢?我怎样才能检查这些?
    • 把它们放在 EF_Model.Member (?) 上
    • 有什么方法可以在视图模型层中使用它们吗?
    • 数据注解是从你的 BL 对象到数据库表的映射,VM 层不需要它们。
    【解决方案2】:

    尽管您也更改了模型,但您应该使用此代码

    public IEnumerable<Entitys.Member> GetALLMembers()
        {
            IEnumerable<Models.EF_Model.Member> list = new Models.CRUD.Member().Get_AllMemeberRecords();
            List<Entitys.Member> listProduct = new List<Entitys.Member>();
            foreach (var item in list)
            {
                listProduct.Add(new Entitys.Member() { FirstName = item.FirstName,.....});
            }
            return listProduct;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2019-01-03
      • 1970-01-01
      相关资源
      最近更新 更多