Tworzenie modeluCreating a Model

Entity Framework korzysta z zestawu Konwencji do kompilacji jest model oparty na kształt z klas jednostek.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Można określić dodatkowej konfiguracji do uzupełnienia i/lub zastąpienie co została wykryta przez Konwencję.You can specify additional configuration to supplement and/or override what was discovered by convention.

W tym artykule omówiono konfiguracji, który można zastosować do modelu przeznaczonych dla dowolnego magazynu danych i tych, które mogą być stosowane, gdy wszystkie relacyjnej bazy danych.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. Dostawcy mogą również włączyć konfiguracji, które są specyficzne dla magazynu danych.Providers may also enable configuration that is specific to a particular data store. Dokumentację dotyczącą określonej konfiguracji dostawcy znaleźć dostawcy bazy danych sekcji.For documentation on provider specific configuration see the Database Providers section.

Porada

Można wyświetlić w tym artykule próbki w witrynie GitHub.You can view this article’s sample on GitHub.

Metody konfiguracjiMethods of configuration

Interfejsu API FluentFluent API

Można zastąpić OnModelCreating metodę w pochodnej kontekstu i użyj ModelBuilder API do skonfigurowania modelu.You can override the OnModelCreating method in your derived context and use the ModelBuilder API to configure your model. To jest najbardziej zaawansowanych metody konfiguracji i umożliwia konfigurację można określić bez modyfikowania klas jednostek.This is the most powerful method of configuration and allows configuration to be specified without modifying your entity classes. Konfiguracja interfejsu API Fluent ma najwyższy priorytet i spowoduje zastąpienie adnotacje konwencje i danych.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();
        }
    }

Adnotacji danychData Annotations

Można również zastosować atrybutów (nazywane adnotacji danych) do klasy i właściwości.You can also apply attributes (known as Data Annotations) to your classes and properties. Adnotacje danych spowoduje zastąpienie Konwencji, ale zostaną zastąpione przez konfigurację interfejsu API Fluent.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; }
    }