SCM

Forum: help

Monitor Forum | Start New Thread Start New Thread
RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Thomas BARBISSOU on 2010-09-23 09:25
[forum:1006469]
Made a little mistake (damn copy/paste ^^ )

You should read :



And next....
-----------------------------
I downloaded [...] ProviderManifestToken="8.4.4" in the first lines.

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Thomas BARBISSOU on 2010-09-23 09:21
[forum:1006468]
Hi

I have the same problem, and I didn't find any information on that anywhere, so I will try to give the most information I can give here ;)

I have :
- Visual Studio 2010 Pro
- Framework .Net 4.0.30319
- Windows XP SP3

Server :
- PostgreSQL 8.4.4
- Windows Server 2003 Standard Edition (Service Pack 2)



Installing NPGSQL in the GAC :
-----------------------------
The first problem I encountered was to install Npgsql in the GAC :
- with npgsql.dll for .Net 4.0, drag & drop doesn't work in c:\windows\assembly (no errors, nothing happens)
- with a gacutil -i (version 3.5.30729.1 from the 7.1 microsoft SDK), it says : "Failure adding assembly to the cache: Cet assembly a été construit par un runtime plus récent que le runtime actuellement chargé et ne peut être chargé" (means : this assembly was built with a more recent runtime than yours and cannot be loaded).
Tried to update the framework on my computer, but seems it's up to date.


- with npgsql.dll for .Net 3.5 everything is fine : drag & drop in the GAC or with gacutil, it works. So I let this version on my computer. I know it's not right but... can't install the right one.



Installing mono.security in the GAC :
-----------------------------
No problems, drag & drop in c:\windows\assembly works.




And next....
-----------------------------
I downloaded EDMGEN2 and used it to make a .edmx of my database, wich is a postgresql 8.4.4. Works OK, I noticed the ProviderManifestToken="8.1.3" in the first lines.

I have the same issue as previous posts here (message in french) :
"Le schéma spécifié n'est pas valide. Erreurs :
erreur 0194: Tous les artefacts chargés dans un ItemCollection doivent avoir la même version. Plusieurs versions ont été rencontrées.
Npgsql.NpgsqlSchema.ssdl(2,52) : erreur 0169: Tous les artefacts SSDL doivent cibler le même fournisseur. Le ProviderManifestToken « 8.1.3 » diffère de « 8.4.4 » rencontré précédemment."


I downloaded sources for npgsql and the only position where I can see a reference to 8.1.3 is in the "NpgsqlSchema.ssdl" in the npgsql directory.
(I can't compile the DLL so I can't try to change the 8.1.3 in this file by a 8.4.4)



Hope it will help to find where is the glitch ;)

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Josh Cooley on 2010-07-10 01:50
[forum:1006212]
I don't understand where this error is coming from. Perhaps you can share a sample project in a bug report where we can reproduce this.

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Mike O. on 2010-07-05 08:07
[forum:1006198]
Were you able to fix the problem? I'm facing the same challenge, no matter what versions I use.

I used 2.0.5 to edmgen a model and used 2.0.5 to run it --> Exception.

I used 2.0.9 to edmgen a model and used 2.0.9 to run it --> Exception.

I used 2.0.9 to edmgen a model and used 2.0.5 to run it --> Exception.

And, as you described, the ProviderManifestToken version numbers just disappear from the error message when changing them in the SSDL file.

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Krystian Paszkiewicz on 2010-05-18 18:04
[forum:1006078]
Unfortunately when I do that I get:
Exception Details: System.Data.MetadataException: Schema specified is not valid. Errors:
error 0194: All artifacts loaded into an ItemCollection must have the same version. Multiple versions were encountered.

Maybe there's something wrong with edmx itself (not the ssdl part).

Thanks for your help anyway :)

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Josh Cooley on 2010-05-18 17:57
[forum:1006077]
You can hand edit the token if you want. I'm unsure why the exception is being thrown, so I can't say if this will fix your problem.

A provider can support multiple tokens, and has worked this way for a while now. I'm uncertain what's different in your setup and the exception doesn't show anything obvious to me. I'll have to do a bit more research on this.

You may want to move this to the bug tracker.

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Krystian Paszkiewicz on 2010-05-18 11:07
[forum:1006076]
It's an MVC application.. call stack without mvc part looks like that:

[MetadataException: Schema specified is not valid. Errors:
Npgsql.NpgsqlSchema.ssdl(2,52) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken '8.1.3' is different from '8.3.7' that was encountered earlier.]
System.Data.Metadata.Edm.Loader.ThrowOnNonWarningErrors() +3506469
System.Data.Metadata.Edm.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) +141
System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, Memoizer`2& cachedCTypeFunction) +142
System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths) +170
System.Data.Metadata.Edm.StoreMetadataEntry.LoadStoreCollection(EdmItemCollection edmItemCollection, MetadataArtifactLoader loader) +90
System.Data.Metadata.Edm.StoreItemCollectionLoader.LoadItemCollection(StoreMetadataEntry entry) +16
System.Data.Metadata.Edm.MetadataCache.LoadItemCollection(IItemCollectionLoader`1 itemCollectionLoader, T entry) +123
System.Data.Metadata.Edm.MetadataCache.GetOrCreateStoreAndMappingItemCollections(String cacheKey, MetadataArtifactLoader loader, EdmItemCollection edmItemCollection, Object& entryToken) +172
System.Data.EntityClient.EntityConnection.LoadStoreItemCollections(MetadataWorkspace workspace, DbConnection storeConnection, DbProviderFactory factory, DbConnectionOptions connectionOptions, EdmItemCollection edmItemCollection, MetadataArtifactLoader artifactLoader) +137
System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections) +298
System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure) +83
System.Data.EntityClient.EntityConnection.Open() +144
System.Data.Objects.ObjectContext.EnsureConnection() +81
System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +46
System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +44
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +7667878
System.Linq.Enumerable.ToList(IEnumerable`1 source) +61



P.S. Is there a way to generate model with lower token version so it won't throw this error?

RE: ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Josh Cooley on 2010-05-18 02:51
[forum:1006075]
I'm running tests with a model generated with an 8.3.5 token (with current cvs and .net 4.0). Can you share the the callstack from the exception so I can get a better context for this? I'm uncertain where it would confuse the token from NpgsqlSchema.ssdl with the one in your ssdl file.

ProviderManifestToken conflict-ssdl vs npgsql [ reply ]
By: Krystian Paszkiewicz on 2010-05-17 21:40
[forum:1006074]
After generating entity model using edmgen2 ProviderManifestToken in ssdl is set to 8.3.7 while in npgsql it's set to 8.1.3. I get the following exception:

Exception Details: System.Data.MetadataException: Schema specified is not valid. Errors:
Npgsql.NpgsqlSchema.ssdl(2,52) : error 0169: All SSDL artifacts must target the same provider. The ProviderManifestToken '8.1.3' is different from '8.3.7' that was encountered earlier.

I'm using npgsql 2.0.9 for .net 4.0.
The code that throws the exception (look line 18):

Line 17: var entities = new CallEntities();
Line 18: return View(entities.call.ToList());

Please help.

Powered By FusionForge