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()
Does anyone know what could cause this?
Thanks in advance,
Brandon