当前位置: 首页 > 编程语言 > C#

保存LINQ-To-SQL实体时出现“Specifiedcastisinvalid”错误分享

时间:2023-04-10 13:20:27 C#

保存LINQ-To-SQL实体时出现“Specifiedcastisinvalid”错误应用详情:C#、ASP。NETMVC、SQLServer2008(相同版本和SP级别)、Linq-To-SQLORM我正在??尝试诊断我遇到的异常:“指定的转换无效。“在System.Data.Linq.IdentityManager.StandardIdentityManager.SingleKeyManage`2.TryCreateKeyFromValues(Object[]values,V&v)在System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[]keyValues)在System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType类型,Object[]keyValues)在System.Data.Linq.CommonDataServices.GetCachedObject(MetaType类型,Object[]keyValues)在System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociationassoc,对象实例)在System.Data.Linq.ChangeProcessor.BuildEdgeMaps()在System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictModefailureMode).DataContext.SubmitChanges()inRepository.Save()等。问题是这只发生在我们的服务器上,而不是我们本地的开发箱。我已经追踪到我们正在修改的一个属性:event.SalesForceId="701Q0000000AOTIIA4";如果我注释掉那一行,一切正常。我试过:1)修改服务器上的所有代码并重新部署。同样的问题。2)拉下服务器数据库的副本并在本地尝试...运行良好。3)在同一个盒子上尝试另一个IIS环境设置。同样的问题。4)物理比较(使用AdeptSQL)本地和远程模式。没有不同。5)验证两列(本地和远程)的数据类型是否相同。此外,此列是另一个表的FK。我确认在整理之前两者都是相同的数据类型。服务器是WindowsServer2008,本地机器是Windows7x64。两者都有重要的更新设置。我唯一能想到的可能是因为数据库和网络服务器在不同的盒子上可能是个问题?否则,我完全被难住了。有任何想法吗?这是LINQtoSQL中的一个众所周知的错误。https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=351358此问题有一个修复程序。http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=963657&kbln=en-us如果键存在于定义的关系中并且对象已经创建,则必须使用LINQ提供的关系路径(obj.Foo=newFoo{...})。(即使对于新对象,我也使用提供的关系)。如果不这样做,将导致-从经验来看-出现这种“随机”错误。可能导致复合关系出现此问题(或非常类似的错误)的另一个问题是反向关系列。但是,如果生成的代码相同并且数据库相同(实际上,在两个帐户上),那么我怀疑第一个原因是罪魁祸首。快乐的SQL到LINQ坑洼跳跃。以上就是C#学习教程:保存LINQ-To-SQL实体时“Specifiedmandatoryconversionisinvalid”错误分享的全部内容。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: