Entity Framework Tutorial Base de données EF en premier
Qu'est-ce que la base de données Entity Framework First?
Lorsque vous commencez à apprendre Entity Framework, vous verrez souvent aussi le terme Base de données Entity Framework First . Tout d'abord, la base de données est l'une des trois approches permettant de créer un modèle d'entité.
Réponse
Dans Entity Framework, l'approche Database First fournit une alternative au code First en créant des classes POCO à partir de la base de données existante.
- La première approche de la base de données est utilisée lorsqu'une base de données est prête; alors Entity Framework finira son devoir et créera des entités POCO pour vous
- Si vous avez déjà une base de données conçue et que vous ne voulez pas faire d’efforts supplémentaires, vous pouvez utiliser cette approche.
- Vous pouvez modifier la base de données manuellement et mettre à jour le modèle à partir d'une base de données.
- On peut donc dire que le cadre d’entité peut créer vos classes de modèle à partir de tables et de colonnes de la base de données relationnelle.
Créer un modèle en utilisant d'abord la base de données
Dans le code d'abord , nous avons créé une base de données à partir d'un DbContext et de classes.
- Il est également possible de procéder à l'ingénierie inverse d'une base de données existante dans un DbContext et des classes. Cette approche est connue sous le nom d'approche Database First.
- Nous avons créé une base de données simple qui contient la table
Books
.
Créons un nouveau projet vide et ajoutons le package EntityFramework NuGet, expliqué dans l’approche Code First .
Nous allons utiliser Entity Framework Designer, qui fait partie de Visual Studio, pour créer notre modèle.
Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et choisissez Add > New Item...
option.

Sélectionnez Données dans le menu de gauche, puis ADO.NET Entity Data Model
.

Entrez BookStore comme nom et cliquez sur Ajouter . Cela lance l'Assistant Modèle de données d'entité. Sélectionnez EF Designer dans la base de données et cliquez sur Suivant .

Sélectionnez la connexion à la base de données créée dans le code. Commencez par entrer BookContext comme nom de la chaîne de connexion, puis cliquez sur Suivant .

Cochez la case en regard de Tables à importer, puis cliquez sur Terminer .
Regardons maintenant la nouvelle classe DbContext.
//------------------------------------------------------------------------------ // <auto-generated> // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ namespace DatabaseFirst { using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class BookContext : DbContext { public BookContext() : base("name=BookContext") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet<Book> Books { get; set; } } }
Vous pouvez voir que la propriété DbSet est créée dans la classe d'entité de Book
. Vous pouvez maintenant utiliser une requête LINQ pour lire / écrire de / dans la base de données.
using (var db = new BookContext()) { db.Books.Add(new Book { Title = "Introduction to Programming", Date = DateTime.Now}); db.SaveChanges(); foreach (var book in db.Books) { Console.WriteLine(book.Title); } }
Mise à jour du modèle à partir de la base de données
Vous pouvez également mettre à jour votre modèle lorsque la base de données change. Ajoutons la colonne AuthorName
à la base de données.
Pour mettre à jour le modèle à partir de la base de données, cliquez avec le bouton droit sur le fichier .edmx et sélectionnez Mettre à jour le modèle à partir de la base de données.

Développez les nœuds Tables, Vues et Procédures stockées, puis cochez les objets à ajouter au fichier .edmx.

Cliquez sur Terminer pour mettre à jour le fichier .edmx avec les modifications de la base de données.

Vous pouvez voir que la propriété AuthorName
est ajoutée au modèle. Nous devons également mettre à jour la classe Book
.

Pour mettre à jour les modifications de champ de table dans le fichier BookStore.tt, cliquez sur le fichier BookStore.tt et choisissez Exécuter l'outil personnalisé .
//------------------------------------------------------------------------------ // <auto-generated> // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ namespace DatabaseFirst { using System; using System.Collections.Generic; public partial class Book { public int BookId { get; set; } public string Title { get; set; } public System.DateTime Date { get; set; } public string Publisher { get; set; } public string AuthorName { get; set; } } }
Vous pouvez maintenant voir que la classe Book
est également mise à jour.
Liens connexes
Pour plus de détails, veuillez consulter les liens suivants.