Tworzenie i konfigurowanie modeluCreating and configuring a Model

Entity Framework używa zestawu Konwencji do zbudowania modelu oparte na kształt klas jednostek.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Możesz określić dodatkowej konfiguracji w celu uzupełnienia i/lub zastąpić, co zostało wykryte przez Konwencję.You can specify additional configuration to supplement and/or override what was discovered by convention.

W tym artykule opisano konfiguracji, które mogą być stosowane do modelu, przeznaczone dla dowolnego magazynu danych i tych, które można zastosować w przypadku przeznaczone dla dowolnej 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. Dostawców może też umożliwiać konfiguracji, które są specyficzne dla określonego magazynu danych.Providers may also enable configuration that is specific to a particular data store. Dokumentację dotyczącą konfiguracji określonego dostawcy znaleźć dostawcy baz danych sekcji.For documentation on provider specific configuration see the Database Providers section.

Porada

Można wyświetlić w tym artykule przykładowe w witrynie GitHub.You can view this article’s sample on GitHub.

Użyj interfejsu API fluent, aby skonfigurować modelUse fluent API to configure a model

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 zaawansowane metody konfiguracji i umożliwia konfigurację można określić bez konieczności wprowadzania zmian w Twoich zajęciach jednostki.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 danych i konwencje adnotacji.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();
        }
    }

Umożliwia konfigurowanie modelu adnotacji danychUse data annotations to configure a model

Atrybuty (znanych jako adnotacje danych) można zastosować także do klas 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 interfejs Fluent API konfiguracji.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; }
    }