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

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

Marsh Posté le 11-06-2018 à 12:17:22    

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

Reply

Marsh Posté le 11-06-2018 à 12:17:22   

Reply

Marsh Posté le 12-06-2018 à 09:42:05    

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


---------------
Topic des restos / Topic des boutiques gastronomiques
Reply

Marsh Posté le 13-06-2018 à 16:37:42    

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.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 02-07-2018 à 15:50:47    

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...

Reply

Marsh Posté le 02-07-2018 à 21:09:20    

: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
Reply

Marsh Posté le 03-07-2018 à 23:26:10    

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.

Reply

Marsh Posté le 04-07-2018 à 14:28:10    

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
Reply

Marsh Posté le 05-07-2018 à 15:34:03    

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)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed