2013-06-10 1 views
1

C'est ma première expérience à déployer .net sur debian. Mon application a été créée et testée dans win 7 vs2012 en utilisant le connecteur Devart mysql en utilisant la première méthode de base de données, après que j'ai commencé à le déployer sur Linux. J'ai rencontré un tas d'obstacles !! Je suis hors de mes nerfs ... quelqu'un peut-il m'aider? Avant que je pensais acheter connecteur Devart mysql édition prof ... Voici ma pileEF 6 + Connecteur DevArt Mysql + MONO

System.Data.Entity.Core.MetadataException: Unable to load the specified metadata resource. 
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources (System.String assemblyName, System.String resourceName, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource..ctor (System.String originalPath, System.String assemblyName, System.String resourceName, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.SplitPaths (System.String paths) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Common.Utils.Memoizer`2+<>c__DisplayClass2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].<Evaluate>b__0() [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Common.Utils.Memoizer`2+Result[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].GetValue() [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Common.Utils.Memoizer`2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].Evaluate (System.String arg) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetArtifactLoader (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.EntityClient.EntityConnection.GetMetadataWorkspace() [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection() [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.Data.Entity.Core.EntityClient.EntityConnection connection, Boolean isConnectionConstructor, System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, System.Data.Entity.Core.Common.Internal.Materialization.Translator translator, System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory columnMapFactory) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString, System.String defaultContainerName) [0x00000] in <filename unknown>:0 
at PararuLibrary.Databases.Mysql.PararuRuMysqlEntities..ctor() [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Databases/Mysql/PararyEDM.Designer.cs:52 
at PararuLibrary.Repositories.UserRepository..ctor() [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Repositories/UserRepository.cs:24 
at ConsoleTest.Program.Proceed() [0x00040] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:28 
at ConsoleTest.Program.Main (System.String[] args) [0x00001] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:22 

Après que j'ai appliqué des changements dans App.config dans la chaîne de connexion à partir de:

<add name="PararuRuEntitiesCS" connectionString="metadata=res://*/Databases.Mysql.PararyEDM.csdl|res://*/Databases.Mysql.PararyEDM.ssdl|res://*/Databases.Mysql.PararyEDM.msl;provider=Devart.Data.MySql;provider connection string=&quot;User Id=root;Host=localhost;Database=pararu_ru;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" /> 

à .. .

<add name="PararuRuEntitiesCS" connectionString="metadata=res://PararuLibrary/Databases.Mysql.PararyEDM.csdl|res://PararuLibrary/Databases.Mysql.PararyEDM.ssdl|res://PararuLibrary/Databases.Mysql.PararyEDM.msl;provider=Devart.Data.MySql;provider connection string=&quot;User Id=root;Host=localhost;Database=pararu_ru;Persist Security Info=True&quot;" 
     providerName="System.Data.EntityClient" /> 

... j'ai ce ...

System.NotImplementedException: The requested feature is not implemented. 
    at System.Reflection.AssemblyName.ReferenceMatchesDefinition (System.Reflection.AssemblyName reference, System.Reflection.AssemblyName definition) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.DefaultAssemblyResolver.ResolveAssembly (System.Reflection.AssemblyName referenceName) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.DefaultAssemblyResolver.TryResolveAssemblyReference (System.Reflection.AssemblyName refernceName, System.Reflection.Assembly& assembly) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.ResolveAssemblyName (System.String assemblyName, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataCache.SplitPaths (System.String paths) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Common.Utils.Memoizer`2+<>c__DisplayClass2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].<Evaluate>b__0() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Common.Utils.Memoizer`2+Result[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].GetValue() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Common.Utils.Memoizer`2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].Evaluate (System.String arg) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetArtifactLoader (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.EntityClient.EntityConnection.GetMetadataWorkspace() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.Data.Entity.Core.EntityClient.EntityConnection connection, Boolean isConnectionConstructor, System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, System.Data.Entity.Core.Common.Internal.Materialization.Translator translator, System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory columnMapFactory) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString, System.String defaultContainerName) [0x00000] in <filename unknown>:0 
    at PararuLibrary.Databases.Mysql.PararuRuMysqlEntities..ctor() [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Databases/Mysql/PararyEDM.Designer.cs:52 
    at PararuLibrary.Repositories.UserRepository..ctor() [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Repositories/UserRepository.cs:24 
    at ConsoleTest.Program.Proceed() [0x00040] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:28 
    at ConsoleTest.Program.Main (System.String[] args) [0x00001] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:22 

Répondre

-1

Cela ressemble à un bug Mono. Essayez la solution de contournement suivante: modifiez la valeur de propriété de modèle "Metadata Artifact Processing" de "Embed In Output Assembly" à "Copy To Output Directory". Enregistrez le modèle, reconstruisez le projet sous Windows pour vous assurer qu'il fonctionne et déployez-le sur Mono.

+0

Je vais essayer ...! – NyoNor

-1

L'erreur est claire: cette méthode n'est pas implémentée en mono.

Mono est un projet open source. Sans les contributions de personnes comme vous, il ne peut pas continuer à évoluer. S'il vous plaît envisager de contribuer une implémentation à la méthode (ne regardez pas les sources MS, car ce ne serait pas valide).