IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Export de BDD avec Entity Framework Code First


Sujet :

Entity Framework

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut Export de BDD avec Entity Framework Code First
    Bonjour,

    J'ai créé un projet c# avec une classe d'objet représentant les tables de ma BDD (code first avec EF5). Aujourd'hui, j'aimerais générer un backup de ma BDD depuis mon application c#. Soit créer un script SQL, ou une meilleur idée si vous en avez.

    Pourriez-vous m'indiquer des exemples de code pour parvenir à mes fins svp ? C'est très urgent :/.

    Merci !

    voici des extrait de code de mes classe :

    mon db context :
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    namespace App_Clinique.ClassLibrary.DbContext
    {
        using App_Clinique.ClassLibrary.Entities;
        using System;
        using System.Collections.Generic;
        using System.Data.Entity;
        using System.Data.Entity.ModelConfiguration.Conventions;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
     
        public class App_cliniqueContext : DbContext
        {
            public DbSet<Actualite> Actualite { get; set; }
            public DbSet<Consultation> Consultation { get; set; }
            public DbSet<Document> Document { get; set; }
            public DbSet<Medicament> Medicament { get; set; }
            public DbSet<OrdonnancesMedicaments> OrdonnancesMedicaments { get; set; }
            public DbSet<Patient> Patient { get; set; }
     
            public App_cliniqueContext()
                : base("App_cliniqueContext")
            {
     
            }
     
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Entity<Actualite>().ToTable("Actualite", "dbo");
                modelBuilder.Entity<Consultation>().ToTable("Consultation", "dbo");
                modelBuilder.Entity<Document>().ToTable("Document", "dbo");
                modelBuilder.Entity<Medicament>().ToTable("Medicament", "dbo");
                modelBuilder.Entity<OrdonnancesMedicaments>().ToTable("OrdonnancesMedicaments", "dbo");
                modelBuilder.Entity<Patient>().ToTable("Patient", "dbo");
     
                /****************************************************************************************************
                 * 
                 ***************************************************************************************************/
                modelBuilder.Entity<Consultation>()
                            .HasRequired(Consultation => Consultation.Patient)
                            .WithMany(Patient => Patient.Consultations)
                            .HasForeignKey(Consultation => Consultation.PatientID)
                            .WillCascadeOnDelete(true);
     
                modelBuilder.Entity<Consultation>()
                            .HasOptional(Consultation => Consultation.Ordonnance)
                            .WithMany()
                            .HasForeignKey(Consultation => Consultation.OrdonnanceID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<Document>()
                            .HasRequired(Document => Document.Patient)
                            .WithMany()
                            .HasForeignKey(Document => Document.PatientID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<ArretMaladie>()
                            .HasOptional(ArretMaladie => ArretMaladie.DossierMedical)
                            .WithMany(DossierMedical => DossierMedical.ArretsMaladie)
                            .HasForeignKey(ArretMaladie => ArretMaladie.DossierMedicalID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<Ordonnance>()
                            .HasOptional(Ordonnance => Ordonnance.DossierMedical)
                            .WithMany(DossierMedical => DossierMedical.Ordonnances)
                            .HasForeignKey(Ordonnance => Ordonnance.DossierMedicalID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<OperationChirurgicale>()
                            .HasOptional(OperationChirurgicale => OperationChirurgicale.DossierMedical)
                            .WithMany(DossierMedical => DossierMedical.OperationChirurgicales)
                            .HasForeignKey(OperationChirurgicale => OperationChirurgicale.DossierMedicalID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<Ordonnance>()
                            .HasRequired(Ordonnance => Ordonnance.Consultation)
                            .WithMany()
                            .HasForeignKey(Ordonnance => Ordonnance.ConsultationID)
                            .WillCascadeOnDelete(false);
     
                modelBuilder.Entity<OrdonnancesMedicaments>()
                            .HasRequired(OrdonnancesMedicaments => OrdonnancesMedicaments.Ordonnance)
                            .WithMany(Ordonnance => Ordonnance.OrdonnancesMedicaments)
                            .HasForeignKey(OrdonnancesMedicaments => OrdonnancesMedicaments.OrdonnanceID)
                            .WillCascadeOnDelete(true);
     
                modelBuilder.Entity<OrdonnancesMedicaments>()
                            .HasRequired(OrdonnancesMedicaments => OrdonnancesMedicaments.Medicament)
                            .WithMany(Medicament => Medicament.OrdonnancesMedicaments)
                            .HasForeignKey(OrdonnancesMedicaments => OrdonnancesMedicaments.MedicamentID)
                            .WillCascadeOnDelete(true);
     
                modelBuilder.Entity<Patient>()
                            .HasOptional(Patient => Patient.Document)
                            .WithMany()
                            .HasForeignKey(Patient => Patient.DocumentID)
                            .WillCascadeOnDelete(false);
            }
        }
     
        public class App_cliniqueInitializer : DropCreateDatabaseIfModelChanges<App_cliniqueContext>
        {
            protected override void Seed(App_cliniqueContext context)
            {
     
            }
        }
    }
    une classe (table) :
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace App_Clinique.ClassLibrary.Entities
    {
        [Serializable]
        public partial class Medicament
        {
            public Medicament()
            {
     
            }
     
            [Column("MedicamentID", Order = 0), DatabaseGenerated(DatabaseGeneratedOption.None), Key]
            public virtual Int64 MedicamentID { get; set; }
     
            [Column("Code"), Required]
            public virtual String Code { get; set; }
     
            [Column("Nom"), Required]
            public virtual String Nom { get; set; }
     
            [Column("Designation"), Required]
            public virtual String Designation { get; set; }
     
            [Column("CodeBarre"), Required]
            public virtual String CodeBarre { get; set; }
     
            [Column("Laboratoire"), Required]
            public virtual String Laboratoire { get; set; }
     
            [Column("Categorie"), Required]
            public virtual String Categorie { get; set; }
     
            /****************************************************************************************************
             * Foreign Keys - IDs
             ***************************************************************************************************/
     
            /****************************************************************************************************
             * Foreign Keys - Reference Objects
             ***************************************************************************************************/
     
            /****************************************************************************************************
             * Collections
             ***************************************************************************************************/
            public virtual ICollection<OrdonnancesMedicaments> OrdonnancesMedicaments { get; set; }
        }
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour générer le script de de la base de données à partir du model Code First, tu ouvres la console Package Manager et tu tapes :Update-Database -Script -SourceMigration:0

    À partir de SSMS, tu n'as pas besoin de faire une backup. Le logiciel fourni déjà une fonctionnalité pour générer le script d'une base de données avec Schéma et/ou avec les données incluses. Pour cela tu fais un click droit sur la base de données concernées, puis dans le menu Tâches tu cliques sur Générer Script. Ensuite tu suis les instructions de l'assistant.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 56
    Points : 142
    Points
    142
    Par défaut
    Je suis d'accord avec h2s84, un export de base (modèle ou données) ne doit pas être fait avec un programme C# ni à partir de ton IDE d'ailleurs.

    SSMS propose cette fonctionnalité, pourquoi réinventer la roue ? Si ton modèle change tu es bon pour updater ton programme, recompiler, redeployer...

    Si tu veux vraiment lancer une sauvegarde depuis un programme .net tu peux envisager l'approche suivante :
    - Créer une store prodedure qui fait un CREATE BACKUP
    - Ajouter cette store procedure dans ton model EF
    - Creer une methode pour l'executer (côté client ou via webservice)

    glhf

Discussions similaires

  1. [Débutant] Entity Framework Code First et utilisation de SGBD multiple
    Par badams dans le forum Entity Framework
    Réponses: 2
    Dernier message: 16/02/2015, 08h37
  2. [Débutant] Application MVC 4 - Entity Framework (Code First) - Base Oracle
    Par clem166 dans le forum Entity Framework
    Réponses: 2
    Dernier message: 25/06/2014, 21h32
  3. Entity Framework - Code First : Reverse Engineering
    Par Invité dans le forum Contribuez
    Réponses: 0
    Dernier message: 13/12/2012, 14h16
  4. [Débutant] Entity Framework code first
    Par jorrie dans le forum Silverlight
    Réponses: 2
    Dernier message: 07/11/2012, 15h16

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