Création et configuration d’un modèleCreating and configuring a Model

Entity Framework utilise un ensemble de conventions pour créer un modèle basé sur la forme de vos classes d’entité.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Vous pouvez spécifier une configuration supplémentaire pour compléter et/ou remplacer ce qui a été découvert par convention.You can specify additional configuration to supplement and/or override what was discovered by convention.

Cet article traite de la configuration qui peut être appliquée à un modèle ciblant n’importe quel magasin de données et qui peut être appliquée pendant le ciblage d’une base de données relationnelle.This article covers configuration that can be applied to a model targeting any data store and that which can be applied when targeting any relational database. Les fournisseurs peuvent également activer la configuration qui est spécifique à un magasin de données particulier.Providers may also enable configuration that is specific to a particular data store. Pour plus d’informations sur la configuration spécifique du fournisseur, consultez la section Fournisseurs de base de données.For documentation on provider specific configuration see the Database Providers section.

Conseil

Vous pouvez afficher l’exemple proposé dans cet article sur GitHub.You can view this article’s sample on GitHub.

Utiliser l’API Fluent pour configurer un modèleUse fluent API to configure a model

Vous pouvez substituer la méthode OnModelCreating dans le contexte dérivé et utiliser ModelBuilder API pour configurer votre modèle.You can override the OnModelCreating method in your derived context and use the ModelBuilder API to configure your model. Il s’agit de la méthode de configuration la plus puissante, qui permet de spécifier une configuration sans modifier les classes d’entité.This is the most powerful method of configuration and allows configuration to be specified without modifying your entity classes. Dotée du niveau de priorité le plus élevé, la configuration de l’API Fluent remplace les conventions et les annotations de données.Fluent API configuration has the highest precedence and will override conventions and data annotations.

    class MyContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Blog>()
                .Property(b => b.Url)
                .IsRequired();
        }
    }

Utiliser des annotations de données pour configurer un modèleUse data annotations to configure a model

Vous pouvez également appliquer des attributs (également appelés annotations de données) à vos classes et propriétés.You can also apply attributes (known as Data Annotations) to your classes and properties. Les annotations de données remplacent les conventions, mais elles sont remplacées par la configuration de l’API Fluent.Data annotations will override conventions, but will be overridden by Fluent API configuration.

    public class Blog
    {
        public int BlogId { get; set; }
        [Required]
        public string Url { get; set; }
    }