Bonjour à tous,

Je dois reprendre un logiciel qui n'est pas terminé, et j'ai déjà un souci avec l'accès à la base de données.
Mon ancien collègue qui n'est plus là, a utilisé pour ce projet Entity Framework 6, cela tombe bien, car je voulais étudier cela.

On a 2 bases un SQlite en local, et une MySQL en distante.
J'ai réussi pour Sqlite, mais pas pour MySQL.

Pour tester les 2 base, j'ai créé des programmes de test et cela fonctionne bien pour les 2 j'arrive à me connecter à MySQL.

Pour le programme à reprendre j'arrive à me connecter mais avec une stringconnexion dans App.config, mais comme les paramètres de connexion de Mysql vont changer suivant les clients, cela doit être paramétrable, donc je transmet au "contexte" ma ligne de connexion, au lieu de la prendre dans le App.config.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    //pour que cela fonctionne dans mon test, j'ai été obligé d'ajouter cela
    [DbConfigurationType(typeof(MySql.Data.EntityFramework.MySqlEFConfiguration))]
 
    public class MySqlContext: DbContext
    {
        //valeur de connectSring = "Server=localhost;Database=mes_verif;Uid=monPsedo;Pwd=MonPass;Port=3306"
        public MySqlContext(string connectString) : base(connectString) //  : base("name=mysqlcontext") Cela fonctionne si je prend cette solution
        {
        }
Je précise que j'ai les mêmes Nuget dans les 2, même version. Dans le logiciel à reprendre bien sûr il y a d'autre dépendance dont SQlite.


Le message d'erreur: 'Mot clé non pris en charge : 'port'.'

J'avais aussi ce message d'erreur dans mon logiciel de test avant que rajoute DbConfigurationType.

Avez vous une idée ? Du coup j'ai l'impression qu'il essaie de ce connecter au mauvais provider.

Merci de votre aide.


PS: j'ai l'impression que l'utilisation des EntityFramework ralenti beaucoup la transaction.