Linq 'index was outside array problem

When trying to install a unit test to insert an item into a SQL Server Express (2008) database using C # Linq, I encountered an error that caused me some problems. Linq code is built using Visual Studio 2008.

The exception applies to a system running Windows XP SP2. Linq works great, and the recording is properly inserted into the system running Windows 7 Home Premium (64-bit).

I reset and recreated the database in the XP system. I reset and recreated the DAL and the corresponding DBML in the XP system.

Other tables with unit tests for inserts into the same database work fine.

Inserting a record into a table using a simple insert statement in SQL Server Management Studio works accordingly.

What should I look for to find the source of the problem? What needs to be done to solve the problem?

Any understanding of what the error message is really trying to say would be greatly appreciated.

Error message

System.IndexOutOfRangeException : Index was outside the bounds of the array.

Stack trace

at 

System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager`3.TryCreateKeyFromValues(Object[] values, MultiKey`2& k)
at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[] keyValues)
at System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType type, Object[] keyValues)
at System.Data.Linq.CommonDataServices.GetCachedObject(MetaType type, 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 System.Data.Linq.DataContext.SubmitChanges()
at nUnit.DAL.FacilityTests.AddFacility2() in C:\SVN\SVNRevenue360\Branches\Dev\Code\ProviderAdvantage\nUnit.CoreTests\Tests\DAL\FacilityTests.cs:line 50

Embed code

        [Test]
    public void AddFacility2() {
        string facilityname = "Test Facility";
        try {
            using (PA.Database.Revenue360DB db = new PA.Database.Revenue360DB(PA.DAL.DataAccess.ConnectionString)) {
                db.Log = Console.Out;
                PA.Database.Facility facility = new PA.Database.Facility();
                facility.id = Guid.NewGuid();
                facility.Name = facilityname;
                facility.Street1 = "";
                facility.Street2 = "";
                facility.Street3 = "";
                facility.City = "";
                facility.State = "";
                facility.Zip = "";
                facility.Description = "";

                db.Facilities.InsertOnSubmit(facility);
                db.SubmitChanges();  // line 50
            }
        } catch (Exception ex) {
            Console.WriteLine(ex.GetType().FullName + ":  " + ex.Message);
            Console.WriteLine(ex.InnerException == null ? 
                "No inner exception" :
                ex.InnerException.GetType().FullName + ":  " + ex.InnerException.Message);
            throw;
        }
    }

I looked at the following SO questions without understanding what is causing this particular problem.

https://stackoverflow.com/questions/1087172/why-am-i-getting-index-was-outside-the-bounds-of-the-array IndexOutOfRangeException in Queryable.Single Strange LINQ exception (index out of bounds)

+3
source share
2 answers

.

:

, . (-, , , , , ER)

, , . ( ). , , .

UPDATE: SO. , - DBML...

+2

, - . , .NET Framework Windows XP , Windows 7. -, XP SP2, , Microsoft SP3. , . db, Win7 XP ( ). ? .

+1

Source: https://habr.com/ru/post/1746194/


All Articles