回答

收藏

指定的强制类型转换无效的C#实体框架

技术问答 技术问答 325 人阅读 | 0 人回复 | 2023-09-12

嗨,我一直在代码中看到指定的转换无效,但当我连接到备份数据库时,我没有收到指定的转换无效的错误。我不确定发生了什么。
) _8 c& A) F7 R2 o# L- N同样,这个代码可以在一个数据库上完美运行,但在另一个数据库上给了我错误。( C2 ~) |; u* ^0 \+ ^: o* A: G
我的控制器
( q7 ]" C0 A/ _/ fusing 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 =  30get MP Data         if (countSpace == 1 && v.Count(char.IsLetter) > 3)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 = @ViewBag.col = "Unclaimed Pensions";        return View(mpq.ToPagedList(currentPageIndex,DefaultPageSize));    }}}我的模特/ q- O7 ]; z& a' V9 C
[global::System.Data.Linq.Mapping.TableAttribute(Name = "dbo.mp")]public partial class mp{    private string _COMPANY;    private string _STATE;    private System.Nullable _DOPT;    private string _SP_STATE;    private string _PRT_NAME;    private string _NAME_LAST;    private string _NAME_FIRST;    private string _LASTADDRESS;    private System.Nullable _ID;    private System.Nullable _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 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 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 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;              }    }}堆栈跟踪' e) L/ ~8 l9 q) [. @
Line              @ViewBag.col = "Unclaimed Pensions";Line 258ine               return View(mpq.ToPagedList(currentPageIndex,     DefaultPageSize));Line  Line 261:Stack Trace:[InvalidCastException: Specified cast is not valid.] System.Data.SqlClient.SqlBuffer.get_Double()  51System.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               
. T- j8 }+ r' `& L& ?2 k6 a    解决方案:                                                               
2 V4 i2 w" d0 b" A! c                                                                将备份数据库与无效数据库进行比较,特别是ID比较列。确保它们同时匹配 类型        (NULL)的能力。3 ~9 _6 b. W+ ]( b5 ^! i
引起异常表示列之一(类型为 )double)与模型不匹配。8 f9 a. z5 O# ~; B- d
“ mp”表上的ID列是模型中唯一的双列。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则