J'ai essayé de trouver une solution pour mon problème mais mes efforts jusqu'à présent étaient en vain. : - (
J'ai créé un projet Web à l'aide de Visual Studio 2010, .NET Framework 4, C #, Entity Framework 5.0, MySQL 5.5 et son connecteur .NET correspondant (version 6.5.4). J'utilise la première approche du code Pour les entités et la cartographie O / R. P>
Le problème que je suis confronté est que je ne suis pas incapable d'exécuter ce qui semblait être une migration simple. Voici mes classes d'entité: P> xxx pré>
le code généré par Tout d'abord, je devais modifier les propriétés nommées Versao (version) de p> à p> add-migration acesso code> (uniquement
up () code> méthode): p>
update-base de données code> a échoué avec le Après erreur indiquée dans la console: p>
System.FormatException: Cadeia de entrada não estava em um formato incorreto.
em System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
6 Réponses :
Vous devez également essayer connecteur .NET 6.6 car il s'agit du premier support réclamant pour EF 4.3 (la première version avec migrations). Si cela ne vous aide pas, essayez DotConnect pour MySQL (au moins d'essai) pour trouver si Le problème est dans le connecteur .NET ou dans EF. Le connecteur ODBC ne fonctionnera pas avec EF. P>
Merci! Presque là-bas ... Malheureusement, le connecteur .NET 6.6 dépend de l'entitéFramework.dll version = 4.3.1.0 Mais la version d'entité Framework 5.0 DLL est 4.4.0.0. System.reflection.TargeTInvocationException se produit lorsque j'essaie d'exécuter les migrations à l'aide du nouveau connecteur: System.io.FileloadException: Não FOI Possível Carregar Arquivo ou Assembly 'EntityFramework, version = 4.3.1.0, Culture = neutre, PublickeyToken = B77A5C561934E089' OU uma de suas dépendênais. Un Manifeste de Finição Do Assemblage localizado Não corresponde à Referência Do Assembly. (Exceção de HRESULT: 0x80131040)
Je ne pense pas que la migration de code est prise en charge par .NET Connector 6.6. Je l'ai déjà essayé, l'erreur que vous obtiendrez, lorsque vous exécutez «la base de données de mise à jour». Aucun migrationQlenerator trouvé pour le fournisseur 'mysql.data.mysqlclient'. Utilisez la méthode SetsQLenerator dans la classe de configuration des migrations cible pour enregistrer des générateurs SQL supplémentaires. DotConnect for MySQL pourrait fonctionner car ils disent qu'ils ont ajouté le support de migration p>
Un mysqlmigrationqlgenerator existe dans le paquet mysql.data.entity. Vous devez l'enregistrer manuellement à l'aide de SETMIGRAGATIONSQLGenerator (). Vous devez également compiler le connecteur .NET 6.6 contre .NET Framework 4.5 ou vous ferez l'expérience de ce que Matheus.emm a fait ci-dessus
La chose avec l'utilisation d'EF CTP5 (A.k.a version 4.4.0) est que la méthode CreateOn a été obsolète (qui permettait de créer la table associée dans la base de données) et du connecteur / NET 6.6 tente de migrer cette table provoquant une exception. p>
J'ai Pour l'utiliser, vous pouvez simplement après votre à ce stade, vous devez être capable d'exécuter Les changements de clé de ma fourche sont les suivants: p> Les fichiers binaires dépendent de l'EF5 plutôt que de l'EF4.3. P> Li>
EF5 PreXend Il supprime l'utilisation de mysql.data code> et
mysql.data.entity code>. Assurez-vous également que votre projet dépend de l'EF5 plutôt que de 4,3. P>
Activer-migration code> La première fois, modifiez votre constructeur code> de la classe code> Inclure la ligne: p>
add-migration code> et
update-base de données code> Sans problèmes. p>
DBO. code> à tous vos noms de table, que MySQL ne peut pas gérer. Ainsi, ma version packs le générateur de migration SQL pour supprimer le
DBO. Code> préfixe des noms de table. Tout cela suppose que vous ne remplacez pas le schéma via le
TableauTribute code> sur les classes d'entité. P> li>
créatedon code> comme jimi mentionné dans sa réponse. p> li>
ul> p>
Merci pour votre fourchette. Cela m'a bougé. Où avez-vous obtenu le code source/connector à la fourchette? J'ai essayé de le trouver pour résoudre un autre problème (support Unicode) en vain.
@Sergiopereira, il est livré avec le Archive zip .
Kirk, mais d'où l'avez-vous obtenu? Pour l'instant, je viens de vous faire renverser sur Bitbucket, mais il serait agréable de savoir où se trouve la source d'origine si j'ai besoin de faire une fourchette à nouveau sur une nouvelle version.
@Sergiopereira, je pensais avoir répondu à votre question? Le code source est contenu dans le fichier zip que j'ai lié à mon commentaire précédent. (Il est livré avec le connecteur) C'est là que j'ai reçu le code source. (Je ne pense pas qu'il soit disponible sur GitHub / Bitbucket / etc., Bien que je puisse me tromper)
D'oh. Je pensais que votre lien indique le même zip de votre fourchette. Merci. Je crois que la source utilisée pour vivre sur Launchpad mais je ne pouvais plus le trouver là-bas.
Merci krik !! Appréciez ça !!
Bonjour @kirkwoll je suis tombé sur votre réponse et il a clarifié quelques choses. Une chose que je me demandais est de savoir où le code considère-t-il ceci: "Tout cela suppose que vous ne remplacez pas le schéma via la TableAteTribute sur les classes d'entités" puisque j'utilise ce problème d'obtention de problèmes et que la méthode intérieure Trimschemaprefix est ignorée. génération de code. Des idées?
@Kirkwoll, je souhaite la bienvenue à une réponse si vous en avez un, entre-temps, pour tromper le système, je viens d'utiliser cette convention pour mon entité dto. [Table ("dbo.user")] pour UserDto et son fonctionnement ;-)
Il y a une certaine utile comment guide sur l'utilisation de Connector EF + + Efmigrations .. Je pense que cela aiderait si vous les vérifiez. La dernière version du connecteur / net (6.6.4) dépend de l'EF 4.3.1 La version du connecteur / net prenant en charge EF 5 est toujours en phase de code. p>
HOWTO à l'aide de migrations EF et de connecteur / net p>
Mise à niveau vers Migrations basées sur le code EF 4.3.1 avec connecteur / Net 6.6 P>
J'espère que cela vous aide! P>
Je commençais à mentionner l'erreur mentionnée
aucun migrationqlgenerator trouvée pour le fournisseur 'mysql.data.mysqlclient'. Utilisez la méthode SETSQLGenerator dans la classe de configuration des migrations cible pour enregistrer des générateurs SQL supplémentaires. P>
et a été corrigé avec cette instruction P>
SetSqlGenerator("MySql.Data.MySqlClient", new ySql.Data.Entity.MySqlMigrationSqlGenerator());
Quelle est la trace de la pile? Je me demande si cela n'est pas ceci: entityframework.codeplex.com/workitem/461