Vytvoření modeluCreating a Model

Rozhraní Entity Framework vytvoří pomocí sadu pravidel pro model založený na obrazec třídy entity.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Můžete zadat další konfiguraci doplnit nebo přepsat, co byla zjištěna podle konvence.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 cílené na jakékoli úložiště dat a které lze použít, pokud je cílem žádné relační databáze.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. Zprostředkovatelé může také povolit konfiguraci, která je specifická pro konkrétní datové úložiště.Providers may also enable configuration that is specific to a particular data store. Dokumentaci ke konkrétní konfiguraci poskytovatele najdete v článku zprostředkovatelů databáze části.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.

Metody konfiguraceMethods of configuration

Rozhraní Fluent APIFluent API

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 nejúčinnějších metoda konfigurace a umožňuje konfigurace zadat beze změny třídy entity.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();
        }
    }

Datových poznámekData Annotations

Atributy (označované jako datových poznámek) může platit taky pro třídy a vlastnosti.You can also apply attributes (known as Data Annotations) to your classes and properties. Poznámky dat se přepíše konvence, ale budou přepsány konfigurace rozhraní Fluent API.Data annotations will override conventions, but will be overwritten by Fluent API configuration.

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