Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro quentin
    Étudiant
    Inscrit en
    mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Homme quentin
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : mars 2012
    Messages : 34
    Points : 12
    Points
    12

    Par défaut Entity Framework 5

    Bonjour, voila je viens vous demandez de l'aide car je bute depuis plusieurs jours sur comment changer la chaine de connexion a la base de donnée a partir de mon code.
    Je voudrais que les utilisateur de mon application puisse changer les informations via un fichier texte par exemple ou un fichier xml qui me permettrais d'aller piocher c'est infos dedans est d'ensuite établir la connexion.
    J'ai chercher du coté du connexionString mais aucun résultat concluant.

    Voici le code que je me suis servi pour mes test:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
            private static string ConnectionString
            {
                get
                {
                    // Specify the provider name, server and database.
                    string providerName = "MySql.Data.MySqlClient";
                    string metaData = "res://*/DataObject.Model1.csdl|res://*/DataObject.Model1.ssdl|res://*/DataObject.Model1.msl";
     
                    // Initialize the EntityConnectionStringBuilder.
                    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
     
                    //Set the provider name.
                    entityBuilder.Provider = providerName;
     
                    // Set the provider-specific connection string.
                    entityBuilder.ProviderConnectionString = "server=localhost;user id=root;password=root;database=testdb";
     
                    entityBuilder.Metadata = metaData;
     
                    return entityBuilder.ToString();
                }
            }
    Mais j'ai une erreur de type : "Keyword not supported.\r\nNom du paramètre : metadata".

    Pourriez-vous me donner des pistes ^^, je suis a cours d'idées.

    Cordialement Quentin.

  2. #2
    Rédacteur/Modérateur



    Homme Profil pro Thomas Levesque
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 204
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas Levesque
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 204
    Points : 36 687
    Points
    36 687

    Par défaut

    Citation Envoyé par quentin869 Voir le message
    Mais j'ai une erreur de type : "Keyword not supported.\r\nNom du paramètre : metadata".
    A quel endroit tu as cette erreur ? Poste la StackTrace de l'exception

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro quentin
    Étudiant
    Inscrit en
    mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Homme quentin
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : mars 2012
    Messages : 34
    Points : 12
    Points
    12

    Par défaut

    J'ai cette erreur lorsque j'essaie de crée une nouvelle instance de l'entité.

    Voila ma classe :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
        class DatabaseEntities
        {
            private Entities _entities;
            public List<Account> CacheAccount = new List<Account>();
     
            #region Singleton
            private static readonly DatabaseEntities instance = new DatabaseEntities();
     
            static DatabaseEntities() { }
     
            private DatabaseEntities()
            {
                _entities = new Entities();
                _entities.Database.Connection.ConnectionString = ConnectionString;
            }
     
            public static DatabaseEntities Instance
            {
                get
                {
                    return instance;
                }
            }
            #endregion
     
            private static string ConnectionString
            {
                get
                {
                    // Specify the provider name, server and database.
                    string providerName = "MySql.Data.MySqlClient";
                    string metaData = "res://*/DataObject.Model1.csdl|res://*/DataObject.Model1.ssdl|res://*/DataObject.Model1.msl";
     
                    // Initialize the EntityConnectionStringBuilder.
                    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
     
                    //Set the provider name.
                    entityBuilder.Provider = providerName;
     
                    // Set the provider-specific connection string.
                    entityBuilder.ProviderConnectionString = "server=localhost;user id=root;password=root;database=testdb";
     
                    entityBuilder.Metadata = metaData;
     
                    return entityBuilder.ToString();
                }
            }
     
            public void Load()
            {
                foreach (var e in _entities.Account)
                    this.CacheAccount.Add(e);
            }
        }

    Voici la stacktrace :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
       à MySql.Data.MySqlClient.MySqlConnectionStringBuilder.ValidateKeyword(String keyword)
       à MySql.Data.MySqlClient.MySqlConnectionStringBuilder.set_Item(String keyword, Object value)
       à System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value)
       à MySql.Data.MySqlClient.MySqlConnectionStringBuilder..ctor(String connStr)
       à MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString(String value)
       à Gardiens.DataObject.DatabaseEntities..ctor() dans c:\Users\Quentin\Documents\Visual Studio 2012\Projects\Gardiens\Gardiens\DataObject\DatabaseEntities.cs:ligne 23
       à Gardiens.DataObject.DatabaseEntities..cctor() dans c:\Users\Quentin\Documents\Visual Studio 2012\Projects\Gardiens\Gardiens\DataObject\DatabaseEntities.cs:ligne 16

  4. #4
    Rédacteur/Modérateur



    Homme Profil pro Thomas Levesque
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 204
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas Levesque
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 204
    Points : 36 687
    Points
    36 687

    Par défaut

    Database.Connection représente la connexion "brute" MySQL, pas la connexion Entity Framework. Si tu essaies de lui affecter une chaine de connexion EF, forcément ça marche pas... Je suppose que Entities est une classe qui hérite de DbContext ? Dans ce cas passe la chaine de connexion en paramètre du constructeur, et ne touche pas à Database.Connection

  5. #5
    Candidat au titre de Membre du Club
    Homme Profil pro quentin
    Étudiant
    Inscrit en
    mars 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Homme quentin
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : mars 2012
    Messages : 34
    Points : 12
    Points
    12

    Par défaut

    Effectivement c'était bien sa le problème, donc j'ai passer la chaîne de connection via le constructeur est plus de soucis.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •