EntityFramework ToDictionary导致"索引超出了数组的范围"

时间:2014-05-09 15:11:16

标签: .net vb.net linq entity-framework

我正在使用Entity Framework连接到一个名为Modules的表,然后我需要将它们转换为这样的字典:

'get the modules and convert to a dictionary keyed by id and return
dim dict = context.Modules.ToDictionary(Function(x) x.Id)

这通常有效,但有时在这行代码中我得到了这个例外:

  

索引超出了数组的范围。   System.Linq.Enumerable.ToDictionary   System.Linq.Enumerable.ToDictionary   System.Data.Entity.Internal.Linq.InternalSet 1.GetEnumerator System.Data.Entity.Internal.Linq.InternalSet 1.Initialize   System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType   System.Data.Entity.Internal.InternalContext.TryUpdateEntitySetMappingsForType   System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappings   System.Data.Metadata.Edm.MetadataWorkspace.GetEdmSpaceType   System.Data.Metadata.Edm.MetadataWorkspace.TryGetEdmSpaceType   System.Data.Mapping.DefaultObjectMappingItemCollection.TryGetMap   System.Data.Mapping.DefaultObjectMappingItemCollection.TryGetMap   System.Collections.Generic.List`1.get_Item

我无法弄清楚这里发生了什么。为什么EF试图通过索引访问列表,以及为什么它使用不存在的索引?为什么它只是零星的?有问题的表是一个简单的查找表,其内容永远不会改变。

0 个答案:

没有答案