2012-09-29 2 views
0

J'ai une erreur avec une application de console de base de données MySql que doit fonctionner en mono. Sur Microsoft .NET, il fonctionne parfaitement, mais sur Mono 2.11.4, ça ne marchera pas.Erreur interne LazyIinternalConnection avec Mono

J'ai déjà essayé de régler la plupart des paramètres "Copy Local" de la référence sur "true", mais en vain.

Au début de l'application que je reçois immédiatement l'exception suivante:

Unhandled Exception: 

System.TypeInitializationException: An exception was thrown by the type initializer for System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions ---> System.InvalidProgramException: Invalid IL c 
ode in System.Data.Metadata.Edm.PrimitiveType:GetEdmPrimitiveTypes(): method body is empty. 

    at System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions..cctor() [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Data.Entity.Internal.DbSetDiscoveryService.GetSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext.DiscoverAndInitializeSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext.InitializeLazyInternalContext (IInternalConnection internalConnection, System.Data.Entity.Infrastructure.DbCompiledModel model) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext..ctor (System.String nameOrConnectionString) [0x00000] in <filename unknown>:0 
    at oldforum2vanille.NewForum.vforumEntities1..ctor() [0x00000] in <filename unknown>:0 
    at oldforum2vanille.Program.ConvertDiscissionTopics (Int32 newforumid, System.String forumtitle) [0x00000] in <filename unknown>:0 
    at oldforum2vanille.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions ---> System.In 
validProgramException: Invalid IL code in System.Data.Metadata.Edm.PrimitiveType:GetEdmPrimitiveTypes(): method body is empty. 

    at System.Data.Entity.ModelConfiguration.Utilities.TypeExtensions..cctor() [0x00000] in <filename unknown>:0 
    --- End of inner exception stack trace --- 
    at System.Data.Entity.Internal.DbSetDiscoveryService.GetSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext.DiscoverAndInitializeSets() [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext.InitializeLazyInternalContext (IInternalConnection internalConnection, System.Data.Entity.Infrastructure.DbCompiledModel model) [0x00000] in <filename unknown>:0 
    at System.Data.Entity.DbContext..ctor (System.String nameOrConnectionString) [0x00000] in <filename unknown>:0 
    at oldforum2vanille.NewForum.vforumEntities1..ctor() [0x00000] in <filename unknown>:0 
    at oldforum2vanille.Program.ConvertDiscissionTopics (Int32 newforumid, System.String forumtitle) [0x00000] in <filename unknown>:0 
    at oldforum2vanille.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

J'ai déjà essayé une solution proposée à http://alpascual.com/post/2011/05/27/Error-Unable-to-find-the-requested-Net-Framework-Data-Provider-It-may-not-be-installed.aspx (parce que son message d'erreur est à peu près égale) donc j'ajouté ces lignes à mon application .config

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data" /> 
     <add name="ADO.Net driver for MySQL" invariant="MySql.Data" description="ADO.Net driver for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data.MySqlClient, Version=6.6.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 

Après quelques tripoter la configuration, Entity Framework utilise à nouveau la MySql à cause de ces lignes, mais Mono juste cette configuration saute et donne au-dessus Unhandled Exception à nouveau. :(

d'entre vous avez une idée? Suis-je oublié quelque chose?

+0

InvalidProgramException => il est un bug dans mono. S'il vous plaît Le message d'erreur dans le message que vous avez lié à n'a rien à voir avec cette erreur (du tout), dans la mesure où Je peux dire. – usr

+0

Merci pour la réponse. Je vais le signaler aux gars en mono. – Erwin

Répondre

1

Ce scénario n'est pas pris en charge par Mono. Vous n'êtes pas censé exécuter les bibliothèques d'exécution spécifiques de mise en œuvre Microsoft comme System.Data.Entity.dll avec mono.

Entity Framework a été open source récemment (version 6.0) et il est livré avec la dernière version mono. mono ne supporte pas les versions antérieures de Entity Framework.