创建模型

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

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

提示

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

方法和配置

流式API

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

  1. class MyContext : DbContext
  2. {
  3. public DbSet<Blog> Blogs { get; set; }
  4. protected override void OnModelCreating(ModelBuilder modelBuilder)
  5. {
  6. modelBuilder.Entity<Blog>()
  7. .Property(b => b.Url)
  8. .IsRequired();
  9. }
  10. }

数据注解

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

  1. public class Blog
  2. {
  3. public int BlogId { get; set; }
  4. [Required]
  5. public string Url { get; set; }
  6. }