Search code examples
c#entity-frameworkgenericsviewmodeldata-annotations

Cannot implicitly convert type 'System.Collections.Generic.List<x>' to 'System.Collections.Generic.List<y>'


I've used data annotation in my View_Model layer and I have my entities in my Model Layer when I tried to get my methods from Model I got this error

Cannot implicitly convert type 'System.Collections.Generic.List< DigikalaHR.Models.EF_Model.Member>' to 'System.Collections.Generic.List< DigikalaHR.View_Model.Entitys.Member>'

this is my code in my View_Model layer where the error happened

    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());
    } 

this is my code in my Model layer where I connect to my DB

    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();
        }
    }

Solution

  • you should use this code although you have change your model too

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