p
u
b
l
i
c
i
t
é
publicité

Discussion: Entity Framework 5

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

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

    Informations forums :
    Inscription : mars 2012
    Messages : 35
    Points : 13
    Points
    13

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Â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 560
    Points : 40 124
    Points
    40 124

    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
    Étudiant
    Inscrit en
    mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : mars 2012
    Messages : 35
    Points : 13
    Points
    13

    Par défaut

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

    Voila ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Â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 560
    Points : 40 124
    Points
    40 124

    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
    Étudiant
    Inscrit en
    mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : mars 2012
    Messages : 35
    Points : 13
    Points
    13

    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2008, 10h36
  2. ADO.NET Entity Framework, Astoria, Silverlight -> .NET 3.5 ?
    Par rad_hass dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/07/2008, 16h01
  3. version final d'Entity framework
    Par korchimustapha dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 04/07/2008, 17h21
  4. [ADO.NET Entity Framework] génération des tables
    Par anthyme dans le forum Accès aux données
    Réponses: 3
    Dernier message: 22/02/2008, 17h44
  5. Linq - Entity Framework
    Par Jfrancois57 dans le forum Framework .NET
    Réponses: 11
    Dernier message: 12/02/2008, 08h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo