Vytváření a konfiguraci modeluCreating and configuring a Model

Entity Framework používá sadu konvence sestavit model založený na obrazec tříd entit.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Můžete zadat další konfiguraci k doplnění a/nebo přepsat, co bylo zjištěno konvencí.You can specify additional configuration to supplement and/or override what was discovered by convention.

Tento článek se týká konfigurace, který lze použít k modelu, který cílí na jakékoli úložiště dat a který, který je možné použít při cílení na jakoukoli relační databázi.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. Poskytovatelé může také umožnit konfiguraci, která je specifická pro konkrétní datové úložiště.Providers may also enable configuration that is specific to a particular data store. Dokumentace ke službě na konkrétní konfiguraci poskytovatele najdete v článku poskytovatelé databází oddílu.For documentation on provider specific configuration see the Database Providers section.

Tip

Můžete zobrazit v tomto článku ukázka na Githubu.You can view this article’s sample on GitHub.

Použití rozhraní fluent API pro konfiguraci modeluUse fluent API to configure a model

Je možné přepsat OnModelCreating metoda v odvozené kontextu a použití ModelBuilder API ke konfiguraci modelu.You can override the OnModelCreating method in your derived context and use the ModelBuilder API to configure your model. Toto je nejvýkonnější metody konfigurace a umožňuje konfiguraci zadat bez změny vašich tříd entit.This is the most powerful method of configuration and allows configuration to be specified without modifying your entity classes. Konfigurace Fluent API má nejvyšší prioritu a přepíše poznámky konvence a data.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();
        }
    }

Použití anotací dat při konfiguraci modeluUse data annotations to configure a model

Můžete také použít atributy (označuje se jako datové poznámky) do vaší třídy a vlastnosti.You can also apply attributes (known as Data Annotations) to your classes and properties. Datové poznámky přepíše konvence, ale rozhraní Fluent API konfigurace se přepíše.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; }
    }