Model oluşturma ve yapılandırmaCreating and configuring a model

Varlık Çerçevesi, varlık sınıflarınızın şekline dayalı bir model oluşturmak için bir dizi kural kullanır.Entity Framework uses a set of conventions to build a model based on the shape of your entity classes. Sözleşme tarafından keşfedilenleri tamamlamak ve/veya geçersiz kılmak için ek yapılandırma belirtebilirsiniz.You can specify additional configuration to supplement and/or override what was discovered by convention.

Bu makalede, herhangi bir veri deposu hedefleyen bir modele uygulanabilecek ve herhangi bir ilişkisel veritabanıhedeflediğinde uygulanabilecek yapılandırma yı kapsar.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. Sağlayıcılar, belirli bir veri deposuna özgü yapılandırmayı da etkinleştirebilir.Providers may also enable configuration that is specific to a particular data store. Sağlayıcıya özgü yapılandırmayla ilgili belgeler için Veritabanı Sağlayıcıları bölümüne bakın.For documentation on provider specific configuration see the Database Providers section.

İpucu

Bu makalenin örneğini GitHub'da görüntüleyebilirsiniz.You can view this article’s sample on GitHub.

Bir modeli yapılandırmak için akıcı API kullanınUse fluent API to configure a model

Türemiş OnModelCreating bağlamınızdaki yöntemi geçersiz kılabilir ve modelinizi yapılandırmak için yöntemk ModelBuilder API kullanabilirsiniz.You can override the OnModelCreating method in your derived context and use the ModelBuilder API to configure your model. Bu yapılandırmanın en güçlü yöntemidir ve varlık sınıflarınızı değiştirmeden yapılandırmanın belirtilmesine olanak tanır.This is the most powerful method of configuration and allows configuration to be specified without modifying your entity classes. Akıcı API yapılandırması en yüksek önceliğe sahiptir ve kuralları ve veri ek açıklamalarını geçersiz kılar.Fluent API configuration has the highest precedence and will override conventions and data annotations.

using Microsoft.EntityFrameworkCore;

namespace EFModeling.FluentAPI.Required
{
    class MyContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }

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

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

Bir modeli yapılandırmak için veri ek açıklamalarını kullanmaUse data annotations to configure a model

Sınıflarınıza ve özelliklerinize öznitelikleri (Veri Ek Açıklamaları olarak da bilinir) de uygulayabilirsiniz.You can also apply attributes (known as Data Annotations) to your classes and properties. Veri ek açıklamaları kuralları geçersiz kılar, ancak Akıcı API yapılandırması tarafından geçersiz kılınacaktır.Data annotations will override conventions, but will be overridden by Fluent API configuration.

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;

namespace EFModeling.DataAnnotations.Required
{
    class MyContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
    }

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