Version of EdmItemColl not maching version of StoreItemColl

Version of EdmItemColl not maching version of StoreItemColl

Postby bleach » Fri 03 Dec 2010 21:42


I'm relatively new to both Devart and the entity framework and am trying to get a proof of concept for Oracle support working under the dotConnect for Oracle product.

I've done the following:

1. Created a *.edmx data model for the default Microsoft SQL Server provider. This works fine by itself, and queries the database properly.

2. Created an Oracle *.ssdl to map Oracle fields to my generated entity data objects (both SQL Server and Oracle providers use the same set of CLR objects). My *.ssdl was created by hand.

3. Created a new connection string specifying that the standard *.edmx file's SSDL section be replaced with my Oracle version.

4. Created a simple test that attempts to create a new domain service using the Oracle connection string, and generate a query against an Oracle database.

The Devart provider was quite descriptive of the various problems I had in my *.ssdl like when I used a non-primitive type or was trying to map an Oracle type to an incompatible CLR type. However, I eventually hit a wall where all I can get is this fairly generic error:

Code: Select all
   System.Data.MappingException : Schema specified is not valid. Errors:
error 2102: The version of EdmItemCollection must match the version of StoreItemCollection.
   at System.Data.Mapping.StorageMappingItemCollection.Init(EdmItemCollection edmCollection, StoreItemCollection storeCollection, IEnumerable`1 xmlReaders, List`1 filePaths, Boolean throwOnError)
   at System.Data.Mapping.StorageMappingItemCollection..ctor(EdmItemCollection edmCollection, StoreItemCollection storeCollection, IEnumerable`1 xmlReaders, List`1 filePaths)
   at System.Data.Metadata.Edm.MetadataCache.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader)
   at System.Data.Metadata.Edm.MetadataCache.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry)
   at System.Data.Metadata.Edm.MetadataCache.LoadItemCollection[T](IItemCollectionLoader`1 itemCollectionLoader, T entry)
   at System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken)
   at System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader)
   at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)
   at System.Data.EntityClient.EntityConnection.GetMetadataWorkspace()
   at System.Data.Objects.ObjectContext.EnsureMetadata()
   at System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable`1 forMergeOption)
   at System.Data.Objects.ObjectQuery.ToTraceString()

I tried stripping tables and fields out of the *.edmx and *.ssdl until I was left with the most basic database possible: one table with one column. I still get the error.

Does anyone know what could cause this?

Thanks in advance,
Posts: 1
Joined: Fri 03 Dec 2010 21:26

Postby AndreyR » Mon 06 Dec 2010 15:49

We have posted a comment to the Vagif Abilov's post dealing MS SQL to Oracle migration.
Try to migrate using the instructions from this post (take our comment into accordance).
Please let us know if the error persists.
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Return to dotConnect for Oracle