7
votes

Mysql avec cadre d'entité - qu'est-ce que je fais mal?

Je suis complètement nouveau dans le cadre d'entité et même ado.net en général (ne travaillez généralement pas beaucoup de travail avec des bases de données).

  1. J'ai téléchargé et installé connecteur MySQL / NET 6.3.5 .
  2. J'ai créé un nouveau projet C # dans Visual Studio 2010.
  3. J'ai ajouté un nouveau modèle de données d'entité ADO.NET à mon projet et choisissez "Générer à partir de la base de données".
  4. J'ai ajouté une nouvelle connexion à mon serveur MySQL local avec nom de serveur "localhost" + mon nom d'utilisateur et mon mot de passe.
  5. J'ai vérifié toutes les tables de ma base de données MySQL pour générer des objets pour.
  6. J'ai écrit le code suivant:

    ( choses est juste une fausse table que j'ai jeté avec des champs arbitraires.) xxx

    Le ci-dessus a jeté un < Code> NullReferenceException Et je suis vraiment désemparé pourquoi cela pourrait être. Lorsque je teste la connexion, il dit qu'il a réussi. J'ai définitivement configuré la connexion avec le nom d'utilisateur et le mot de passe corrects. Je ne sais même pas quoi d'enquête d'autre à enquêter.

    Pour ceux d'entre vous qui connaissez ce genre de choses, voici l'exception que j'ai obtenue (cependant, à mes yeux non formés, cela ne ressemble pas à cela serait tout cela utile): xxx


3 commentaires

Ralph a également posté la question ici: forums.mysql.com/read.php?47 , 391001 391001


Et la réponse qui résolue pour moi était de copier le répertoire mysql.data.entity.dll vers le répertoire bin pour mon application hébergée.


Je pense que cette pile-échange proposition pourrait intéresser vous. Si cela indique votre support et que vous aidez à le faire en version bêta afin que vous puissiez commencer à vous piquer au code des autres personnes! :)


5 Réponses :


2
votes

C'est un bug de fournisseur. Il peut s'agir d'un bogue déclenché par une erreur de configuration, mais c'est néanmoins un virus de fournisseur. Vous devriez parler aux personnes qui ont écrit votre fournisseur MySQL et les envoient ce cas de pile et de test.


0 commentaires

1
votes

Eh bien, je ne sais pas si c'est comme ça que c'est censé être ou non (si c'est le cas, je suis un peu gêné - mais dans ma défense, je ne verrai-t-elle aucun endroit que cela est clairement indiqué); Mais il semble le problème était que j'avais mon cadre cible défini à .NET 3.5 . Après avoir changé le cadre cible de mon projet (honnêtement, sur un whim) à .NET 4.0, le NullReferenceException est parti.

Donc, aussi insatisfaisant que possible, cela semble avoir été la solution dans mon cas.


2 commentaires

I Obtenir System.NullReferenceException: référence d'objet non définie sur une instance d'un objet. à mysql.data.mysqlclient.mysqlprovididerservices.getdbproviderma nifestToken (connexion dbconnec tion) sur system.data.entity.core.common.dbproviderservices.getProvide rmanifestToken (connexion DBCON Nection) ... si je mettant à niveau à mysql.data.f6.dll et oubliez de cibler .NET 4.


@Agdev, changez votre projet en cible .NET 4.



14
votes

J'ai passé cette erreur en ajoutant une référence à mysql.data.entity.dll (et mysql.web.dll)


1 commentaires

Erreur horrible du connecteur MySQL, mais cela résolvé pour moi.



1
votes

dans la propriété mysqlientfactory-> mysqldbProviderservicesInstance. Il référence le cul: mysql.data.entity utilise le code

string str = assemblage.getexecutingassemblage (). Fullname.replace ("mysql.data", "mysql.data.entity");

Mais dans le client MySQL 6.3.5 La version de Mysqldata est 6.3.5 et mysql.data.entity's Version est 6.3.4 (In \ Program Files \ MySQL \ MySQL Connector Net 6.3.5 \ assemblages \ v2.0 ) .so il ne peut pas le charger avec succès.

Dans le dossier (\ Program Files \ MySQL \ MySQL Connector Net 6.3.5 \ assemblages \ v4.0), la version de mysql.data.entity est 6.3.5, donc la charge ITCAN réussie.

de sorte que la voie unique est de modifier la cible sur .NET 4.0, et une autre est en train de rouler le mysql.data à 6.3.2 / 6.1.2.


0 commentaires

2
votes

Bonnes nouvelles! Ce problème a été résolu dans connecteur MySQL / NET 6.3.6 Mettez à jour votre connecteur MySQL pour résoudre le problème.


0 commentaires