1.4 创建模型

优质
小牛编辑
134浏览
2023-12-01

Entity Framework 使用一组惯例来构建基于实体类型的形状的模型。你可以指定额外的配置来补充或者覆盖被惯例所发现的内容

本文介绍的配置可以应用于针对任何数据存储的模型,并且可以应用于任何关系数据库。提供程序还可以启用为特定数据存储指定的的配置。查看 数据库提供程序 可了解提供程序指定配置的相关内容。

提示

你可以在 GitHub 上查阅当前文章涉及的代码样例

方法和配置

流式API

你可以重写派生上下文类型中的 OnModelCreating 方法,使用 ModelBuilder API 来配置你的模型。这是模型配置的最强大的方法,它允许你在不修改实体类型的情况下为它们指定配置。流式 API 配置具有最高的优先级,所以它会覆盖掉惯例和数据注解所做的配置。

    class MyContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }

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

数据注解

你还可以将特性(我们称其为 数据注解)应用到你的类型和属性上。数据注解会覆盖惯例,但会被流式 API 所做的配置给覆盖。

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