Click here to Skip to main content
15,309,563 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello, I am new to entity framework/mvc/asp and am running into an error I'm not sure how to resolve.

The error I am getting is Error CS0029 Cannot implicitly convert type 'System.Collections.Generic.List<system.web.mvc.selectlistitem>' to 'FirmAdmin.Business.RegistrationType'

Here is the code throwing the error I am getting on
return oRegResults;

public Business.RegistrationType GetReg()
            const string cMyMethodName = "GetFirm";
            string cContext = "Initializing";
            System.Linq.IQueryable<Data.Registration_Type> oFirmListEF;
            //System.Collections.Generic.List<Business.RegistrationType> oRegResults = new System.Collections.Generic.List<Business.RegistrationType>();
            List<SelectListItem> oRegResults = new List<SelectListItem>();


                using (var oFirmContext = new FirmContext(oDB, true))

                    List<SelectListItem> oRegList = new List<SelectListItem>();
                    var registrationList = (oFirmListEF = oFirmContext.Registration_Type.AsQueryable()
                    .OrderBy(f => f.Registration)).ToList();

                    //Prepare a View Model object
                    cContext = "Loading data from EF into view model";
                                      System.Collections.Generic.List<Business.RegistrationType> oReg = new System.Collections.Generic.List<Business.RegistrationType>();

                    foreach (var item in registrationList)
                       oRegList.Add(new SelectListItem { Value = item.Registration.ToString() });

                     oRegResults = oRegList;


            catch (Exception ex)
                //Report the error
                throw new System.Exception("Error occured in " + this.MyClassName + "." + cMyMethodName + " Error: " + ex.Message.ToString() + " Context: " + cContext);

            return oRegResults;

Here is the code in RegistrationType
<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Fed.FirmAdmin.Business
    /// <summary>
    /// This class represents a Firm
    /// </summary>
    public class RegistrationType : BaseEntity
        private const string MyClassName = "RegistrationType";

        public int RegId { get; set; }

        public string Registration { get; set; }


What I have tried:

I am not sure what i am missing in RegistrationType is seems like I need to declare a list item there?
Updated 24-Mar-21 12:55pm

1 solution

You have declared the GetReg method as Business.RegistrationType - which means it returns a single instance of the class Business.RegistrationType.

To simplify it, you would get the same error with this code:
private int Fail()
   return "Hello world";
Because Failis declared as returning a integer, and you are returning a string. You can't implicitly cast a string to an integer - because it might be the text "Hello world" and that doesn't have a numeric equivalent - so the sytem tells you you have made a mistake somewhere.

Your GetReg method returns a List<SelectListItem> which is a collection of SelectListItem objects, and even the individual instances have no obvious relation to the return type!

We can't fix that for you: I have no idea what the heck you expect that to return, and much less idea where it might get that information from!
Member 15053439 25-Mar-21 9:44am
Hi Griff...your explaination was enough for me to realize my issues. Thank you for taking the time to give me a response.
OriginalGriff 25-Mar-21 10:06am
You're welcome!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900