Specified cast is not valid C# Entity Framework

11,787

Compare the backup database with the database that doesn't work, specifically the ID column. Make sure they match both the Type (Float) and ability to be Nullable (NULL).

The exception being thrown indicates that one of the columns (that is of type "double") doesn't match the model.

The ID column on the "mp" table is the only double column in your model.

Share:
11,787
Ren44
Author by

Ren44

Just a young developer trying to learn as much as possible from the community.

Updated on June 04, 2022

Comments

  • Ren44
    Ren44 almost 2 years

    Hi I have been getting this Specified cast is not valid in my code but when I connect to my backup database I do not get the Specified cast is not valid error. I am not sure what is going on.

    Again, this code works perfectly on one database and gives me the error on the other.

    My Controller

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Data.Linq.SqlClient;
    using System.Text.RegularExpressions;
    using MvcPaging;
    using lookups.Models;
    using lookups.Helpers;
    
    
    namespace lookups.Controllers
    {
    public class MPController : Controller
    {
        // GET: /Lookups/
        public LpAppsDataDataContext db = new LpAppsDataDataContext();
        public const int DefaultPageSize = 30;
    
    
        //get MP Data
             if (countSpace == 1 && v.Count(char.IsLetter) > 3)
                                {
                                    if (SqlString.CheckStringForComma(v))
                                    {
                                        mpq = db.mps
                                             .Where(c => c.NAME_LAST.ToLower().Contains(SqlString.GetSplitCommaString(v.ToLower(), 0))).OrderBy(c => c.NAME_LAST).ThenBy(f => f.NAME_FIRST);
                                    }
                                    else
                                    {
                                        mpq = db.mps
                                           .Where(c => c.NAME_LAST.ToLower().Contains(SqlString.GetSplitString(v.ToLower(), 1)) || c.NAME_LAST.Contains(SqlString.GetSplitString(v.ToLower(), 0))).OrderBy(c => c.NAME_LAST).ThenBy(f => f.NAME_FIRST);
                                    }
                                }
                                else
                                {
                                    mpq = db.mps
                                           .Where(c => c.NAME_L
                    ViewBag.count = mpq.Count();
                }
            }
            else { ViewBag.count = 0; }
            @ViewBag.col = "Unclaimed Pensions";
    
            return View(mpq.ToPagedList(currentPageIndex, DefaultPageSize));
        }
    
    }
    }
    

    My Model

    [global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.mp")]
    public partial class mp
    {
    
        private string _COMPANY;
    
        private string _STATE;
    
        private System.Nullable<System.DateTime> _DOPT;
    
        private string _SP_STATE;
    
        private string _PRT_NAME;
    
        private string _NAME_LAST;
    
        private string _NAME_FIRST;
    
        private string _LASTADDRESS;
    
        private System.Nullable<double> _ID;
    
        private System.Nullable<System.DateTime> _DATE;
    
        private string _PLAN_TYPE;
    
        public mp()
        {
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_COMPANY", DbType = "NVarChar(255)")]
        public string COMPANY
        {
            get
            {
                return this._COMPANY;
            }
            set
            {
                if ((this._COMPANY != value))
                {
                    this._COMPANY = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_STATE", DbType = "NVarChar(255)")]
        public string STATE
        {
            get
            {
                return this._STATE;
            }
            set
            {
                if ((this._STATE != value))
                {
                    this._STATE = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_DOPT", DbType = "DateTime")]
        public System.Nullable<System.DateTime> DOPT
        {
            get
            {
                return this._DOPT;
            }
            set
            {
                if ((this._DOPT != value))
                {
                    this._DOPT = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_SP_STATE", DbType = "NVarChar(255)")]
        public string SP_STATE
        {
            get
            {
                return this._SP_STATE;
            }
            set
            {
                if ((this._SP_STATE != value))
                {
                    this._SP_STATE = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PRT_NAME", DbType = "NVarChar(255)")]
        public string PRT_NAME
        {
            get
            {
                return this._PRT_NAME;
            }
            set
            {
                if ((this._PRT_NAME != value))
                {
                    this._PRT_NAME = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_NAME_LAST", DbType = "NVarChar(255)")]
        public string NAME_LAST
        {
            get
            {
                return this._NAME_LAST;
            }
            set
            {
                if ((this._NAME_LAST != value))
                {
                    this._NAME_LAST = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_NAME_FIRST", DbType = "NVarChar(255)")]
        public string NAME_FIRST
        {
            get
            {
                return this._NAME_FIRST;
            }
            set
            {
                if ((this._NAME_FIRST != value))
                {
                    this._NAME_FIRST = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_LASTADDRESS", DbType = "NVarChar(255)")]
        public string LASTADDRESS
        {
            get
            {
                return this._LASTADDRESS;
            }
            set
            {
                if ((this._LASTADDRESS != value))
                {
                    this._LASTADDRESS = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_ID", DbType = "Float")]
        public System.Nullable<double> ID
        {
            get
            {
                return this._ID;
            }
            set
            {
                if ((this._ID != value))
                {
                    this._ID = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_DATE", DbType = "DateTime")]
        public System.Nullable<System.DateTime> DATE
        {
            get
            {
                return this._DATE;
            }
            set
            {
                if ((this._DATE != value))
                {
                    this._DATE = value;
                }
            }
        }
    
        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage = "_PLAN_TYPE", DbType = "NVarChar(255)")]
        public string PLAN_TYPE
        {
            get
            {
                return this._PLAN_TYPE;
            }
            set
            {
                if ((this._PLAN_TYPE != value))
                {
                    this._PLAN_TYPE = value;
                }
            }
        }
    }
    

    StackTrace

    Line 257:            @ViewBag.col = "Unclaimed Pensions";
    Line 258:
    Line 259:            return View(mpq.ToPagedList(currentPageIndex,      DefaultPageSize));
    Line 260:        }
    Line 261:
    
    Stack Trace: 
    
    
    [InvalidCastException: Specified cast is not valid.]
     System.Data.SqlClient.SqlBuffer.get_Double() +51
    System.Data.SqlClient.SqlDataReader.GetDouble(Int32 i) +62
     Read_mp(ObjectMaterializer`1 ) +2057
     System.Data.Linq.SqlClient.ObjectReader`2.MoveNext() +32
       System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection) +392
       System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection) +10
       MvcPaging.PagedList`1..ctor(IQueryable`1 source, Int32 index, Int32    pageSize, Nullable`1 totalCount) +2014
       MvcPaging.PagingExtensions.ToPagedList(IQueryable`1 source, Int32 pageIndex, Int32 pageSize, Nullable`1 totalCount) +134
       lookups.Controllers.MPController.Mp(Nullable`1 page, String sortOrder) in