Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
684 connectés 

  FORUM HardWare.fr
  Programmation

  Création base de données avec Entity code first

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Création base de données avec Entity code first

n°2316868
berduf
Posté le 11-06-2018 à 12:17:22  profilanswer
 

Bonjour à tous,
Je suis nouveau sur le forum et je débute en bases de données.
J'essaie de développer un projet en utilisant Wpf et le pattern MVVM. Pour le début du travail (conception de la vue et binding sur les ViewModels) tout va bien. J'essaie, depuis plusieurs jours et après avoir lu des tas de tutos sur le web, de créer une base de données "BddGestion" avec Entity et le code first. J'ai donc écrit une classe pour ma table "Entree" (je commence doucement)
 
Entree.cs  
namespace GestionComptes.Model  
{  
    [Table("Entrées" )]  
    public class Entree  
    {  
        [Key]  
        public int EntreeId { get; set; }  
 
        public string Operation { get; set; }  
        public decimal Credit { get; set; }  
 
    }  
}  
 
et une autre pour le context "GestionContext".
 
GestionContext.cs  
namespace GestionComptes.Model  
{  
    public class GestionContext: DbContext  
    {  
        public GestionContext() : base("name=GestionContext" ) { }  
        public DbSet<Entree> Entrees { get; set; }  
    }  
}
 
J'ai ensuite remplacé le code de App.config en écrivant:
 
App.config
 <?xml version="1.0" encoding="utf-8"?>  
<configuration>  
  <connectionStrings >  
    <add name="GestionContext" connectionString="Data  
Source=(LocalDb)\v11.0;AttachDBFilename=|DataDirectory|\BddGestion.mdf;Integrated Security=SSPI;"  
providerName="System.Data.SqlClient"/>  
  </connectionStrings>  
</configuration>
 
J'ai ensuite écrit la ligne suivante dans MainWindows.xaml.cs (GestionContext db = new GestionContext();) afin de faire un test rapide.
 
Malheureusement pour moi, quand je lance l'application aucune base de donnée n'est créer.
Je pense que l'erreur est idiote mais je tourne en rond et je ne la vois pas.
Je vous remercie pour votre aide.
Cordialement

mood
Publicité
Posté le 11-06-2018 à 12:17:22  profilanswer
 

n°2316869
fdaniel
Have you got a 27B/6 ?
Posté le 12-06-2018 à 09:42:05  profilanswer
 

Ce sujet a été déplacé de la catégorie Discussions vers la categorie Programmation par Fdaniel


---------------
Topic des restos / Topic des boutiques gastronomiques
n°2316933
TotalRecal​l
Posté le 13-06-2018 à 16:37:42  profilanswer
 

Ce n'est pas parce que tu fais du code first que la base va automatiquement être générée par magie, il faut le demander.
 
Par exemple :  
Database.SetInitializer(new DropCreateDatabaseAlways < GestionContext> ());  
Un peu de lecture : http://www.entityframeworktutorial [...] first.aspx
 
Il faut aussi utiliser un provider qui supporte cette fonction bien sûr.


---------------
Topic .Net - C# @ Prog
n°2317570
berduf
Posté le 02-07-2018 à 15:50:47  profilanswer
 

TotalRecall a écrit :

Ce n'est pas parce que tu fais du code first que la base va automatiquement être générée par magie, il faut le demander.
 
Par exemple :  
Database.SetInitializer(new DropCreateDatabaseAlways < GestionContext> ());  
Un peu de lecture : http://www.entityframeworktutorial [...] first.aspx
 
Il faut aussi utiliser un provider qui supporte cette fonction bien sûr.


 
Je lis ta réponse avec du retard mais je te remercie pour tes indications.  
J'ai passé mon temps à chercher une solution et j'avais vu l'utilisation de l'initializer. Je l'ai inclus mais rien ne change, toujours pas de base de données.
Pour ce qui concerne le provider j'utilise: System.Data.SqlClient
J'ai l'impression que ma chaine de connexion n'est pas bonne. J'ai écrit ceci:
 
<add name="Gestion"
         connectionString="Data Source=(localdb)\v11.0; AttachDbFileName=D:\Gestion Comptes\GestionComptes\Bases\Gestion.mdf ;Integrated Security=true;"
         providerName="System.Data.SqlClient"/>
Est-ce correct?
Merci si tu as un peu de temps à me consacrer...

n°2317588
leujuiphe
Posté le 02-07-2018 à 21:09:20  profilanswer
 

:hello:  
 
Il me semble que ta chaine de connexion doit avoir le même nom que ton context => "GestionContext"
 
Tu utilises quelle version d'Entity framework ?
As tu vérifié que tu pouvais te connecter localement à SQL express via le server explorer de visual studio ?
As tu un message d'erreur quelconque ?
 
Si jamais tu l'avais loupé je te mets le lien vers la doc microsoft.  
https://msdn.microsoft.com/en-us/li [...] .113).aspx
 
En dernier recours je te conseille de recommencer depuis le début en suivant la doc étape par étape


---------------
"Je ne suis pas con, je fais de la rétention d'intelligence, Nuance" Philippe Geluck. ---- Ils sont chauves mes smileys
n°2317622
berduf
Posté le 03-07-2018 à 23:26:10  profilanswer
 

Merci pour ton suivi.
Pour les noms context et chaîne de connexion j'avais vu cette erreur et j'ai tout changé pour avoir une correspondance. Je t'ai envoyé la chaîne corrigée mais pas je context que j'ai aussi corrigé.
Par contre, j'ai écrit une ligne après la liaison au context et ça fonctionne:
BaseGestionContext Bdd = new BaseGestionContext(NomConnexion);
var queryE = from c in Bdd.Entrees select c;
Je ne comprends pas trop pourquoi, peux tu m'éclairer.

n°2317632
leujuiphe
Posté le 04-07-2018 à 14:28:10  profilanswer
 

Sans entrer dans les détails, il est nécessaire d'éxécuter au minimum une requête pour initialiser Entity Framework.
Sans ça il ne se passera rien.
 
Si jamais tu souhaites faire des modifications à ton model de données pat la suite et que tu souhaites garder tes données, penses à activer les migrations.
https://msdn.microsoft.com/en-us/li [...] .113).aspx


---------------
"Je ne suis pas con, je fais de la rétention d'intelligence, Nuance" Philippe Geluck. ---- Ils sont chauves mes smileys
n°2317695
berduf
Posté le 05-07-2018 à 15:34:03  profilanswer
 

Merci pour ta réponse. Je comprends maintenant pourquoi rien ne fonctionnait jusqu'à présent.
Je regarde ton lien et je te recontacte si besoin (donc certainement)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Création base de données avec Entity code first

 

Sujets relatifs
[Symfony 3.3.6] Récupération de données[Perl] Optimisation code perl CGI - Problème de performance
Code jeux du nombre aléatoire en python 3.6LibreOffice.Base : Dédoublonner : Jointure de 2 tables
Sauvegarde d'images dans une base de donnéeBouton skype (code javascript) pas reconnu dans html du site Jimdo
Excel 2016 - Inscription données saisie par formulaire[Résolu] Données manquantes dans un état access
Modification de code sur fichier .xspf de VLC 3.0Afficher mes données que si ma checkbox est cochée
Plus de sujets relatifs à : Création base de données avec Entity code first


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR