Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到SQL问题System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager_C#_.net_Sql Server_Linq To Sql - Fatal编程技术网

C# Linq到SQL问题System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager

C# Linq到SQL问题System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager,c#,.net,sql-server,linq-to-sql,C#,.net,Sql Server,Linq To Sql,我这里有一件很棘手的事情。我的项目有大约100个表,它们都由LINQ映射。在开发和测试环境中,一切都可以正常工作。这些环境是带有SQL 2008 sp1数据库的MS Win 2008 r2服务器。IIS和SQL位于不同的计算机上。 现在,在生产环境MS Win 2003 x64 web farm+geoclustered SQL 2008上,它不起作用。 我得到的只是一个例外 System.IndexOutOfRangeException: Index was outside the bound

我这里有一件很棘手的事情。我的项目有大约100个表,它们都由LINQ映射。在开发和测试环境中,一切都可以正常工作。这些环境是带有SQL 2008 sp1数据库的MS Win 2008 r2服务器。IIS和SQL位于不同的计算机上。 现在,在生产环境MS Win 2003 x64 web farm+geoclustered SQL 2008上,它不起作用。 我得到的只是一个例外

System.IndexOutOfRangeException: Index was outside the bounds of the array. at
System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager3.TryCreateKeyFr>om    Values(Object[] values, MultiKey& k) at   
System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache2.Find(Object[]   
keyValues)  
at System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociation assoc, Object instance) at System.Data.Linq.ChangeProcessor.BuildEdgeMaps() at  
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) at   
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) at   
ERS.IIMP.Services.ExposuresSrv.Update(Int32 ExpID, Int32 AssID)     
Services\ExposuresSrv.cs`
我的问题是到底是什么。它们有完全相同的DBML,DB有完全相同的结构(当我从prod获得DB进行测试并装载它时,一切都很好),WEB服务器上的二进制文件是相同的。 我真的不知道该怎么办。。。。 有人发现Linq在一个环境上工作而在第二个环境上不工作吗??我在这里真的迷路了。
我真的希望您能帮助我:)

您的Windows 2003 web服务器场是否可能正在使用没有SP1的.NET 3.5,并且您的开发计算机上有SP1

在外键映射到另一端不是主键的字段时,有许多错误-一些在.NET 3.5 SP1中修复,一些在.NET 4.0中修复


这正好在该代码路径中,结果通常是索引超出范围(或无效转换)。

DBML中的关联在数据库中不是外键(出于性能原因),但在概念上确实是外键,这有关系吗?您可能正确地怀疑FKey,根据对这个答案的评论