其中一个主键值的类型与实体中定义的类型不匹配。有关详细信息,请参阅内部异常我有以下方法:返回视图(选定的客户);}privateAccountDefinitionGetAccount(stringid){returnentities.AccountDefinition.Find(id);}但它返回以下错误:-其中一个主键值的类型与实体中定义的类型不匹配。有关详细信息,请参阅内部异常。在返回实体.AccountDefinition.Find(id);line那么是什么导致了这个错误呢?内部异常是:-System.ArgumentExceptionwasunhandledbyusercodeHResult=-2147024809Message=其中一个主键值的类型与实体中定义的类型不匹配。有关详细信息,请参阅内部异常。参数名称:keyValuesSource=EntityFrameworkParamName=keyValuesStackTrace:atSystem.Data.Entity.Internal.Linq.InternalSet`1.FindInStore(WrappedEntityKeykey,StringkeyValuesParamName)atSystem.Data.Entity.Internal.Linq.InternalSet`1.Find(Object[]keyValues)atSystem.Data.Entity.DbSet`1.Find(Object[]keyValues)InnerException:System.Data.EntitySqlExceptionHResult=-2146232006Message=参数类型'Edm.Int64'和'Edm.String'与此操作不兼容。NearWHERE谓词,第1行,第90列。Source=System.Data.EntityColumn=90ErrorContext=WHERE谓词,第1行,第90列ErrorDescription=参数类型“Edm.Int64”和“Edm.String”与此不兼容手术。Line=1查看异常消息参数类型'Edm.Int64'和'Edm.String'与此操作不兼容。在WHERE谓词附近,第1行,第90列。参数类型“Edm.Int64”和“Edm.String”与此操作不兼容。NearWHEREpredicate,line1,column90.这个意味着你的AccountDefinition类的ID是long或者Int64但是你试使用string查询它。您需要执行以下操作之一:将CustomersDetails(string[]SelectRight)更改为long[]并将GetAccount(stringid)stringGetAccount(stringid)更改为longid更改returnentities.AccountDefinition.Find(id);返回实体。AccountDefinition.Find(long.Parse(id));选项1更好但需要更多更改(我建议您这样做),选项2更改较少但如果id为null或无法解析为long值,它可能会爆炸。您传递给Find方法但扩展到Int64的字符串参数类型为'Edm.Int64'和'Edm.String'。我知道这是一篇旧帖子,但我想我会在这里添加评论,因为我遇到了同样的问题。我所做的只是重新排列查找函数中的参数。我有这样的东西:publicActionResultDetails(Int32id,stringdataSource){TVData_VW_ShowListtvdata_vw_showlist=context.TVData_VW_ShowList.Find(id,datasource);如果(tvdata_vw_showlist==null){returnHttpNotFound();}return);w_showdata}我不得不改变它:publicActionResultDetails(Int32id,stringdataSource){TVData_VW_ShowListtvdata_vw_showlist=context.TVData_VW_ShowList.Find(dataSource,id);如果(tvdata_vw_showlist==null){returnHttpNotFound();}return_showwdata();我花了很多时间弄清楚这一点,但最终发现.Find(Key1,Key2,..)中的键序列应该与Edmx图形实体中的键序列相匹配。以上是C#学习教程:其中一个主键值的类型与实体中定义的类型不匹配。详信分享的全部内容请参考内部异常。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右方联系管理。会员删除。如需转载请注明出处:
