数据表映射

注意

当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由Microsoft.EntityFrmeworkCore.Relational 程序包共享)。

表映射用于标识应该从数据库查询或写入哪些表数据。

惯例

按照惯例,一旦在派生的上下文中通过 DbSet<TEntity> 属性暴露了实体,该实体就会被设置为映射到与该属性同名的数据表上。如果给定的实体不是通过 DbSet<TEntity> 包含到模型中的,则使用该实体的类型名称。

数据注解

可以使用数据注解来配置类型所映射的数据表。

  1. using System.ComponentModel.DataAnnotations.Schema;
  1. [Table("blogs")]
  2. public class Blog
  3. {
  4. public int BlogId { get; set; }
  5. public string Url { get; set; }
  6. }

还可以指定数据表所属的模式。

  1. [Table("blogs",Schema = "blogging")]
  2. public class Blog
  3. {
  4. public int BlogId { get; set; }
  5. public string Url { get; set; }
  6. }

流式 API

可以使用流式 API 来配置类型所映射的数据表。

  1. using Microsoft.EntityFrameworkCore;
  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. .ToTable("blogs");
  8. }
  9. }
  10. public class Blog
  11. {
  12. public int BlogId { get; set; }
  13. public string Url { get; set; }
  14. }

也可以通过这种方式来指定数据表所属的模式。

  1. modelBuilder.Entity<Blog>()
  2. .ToTable("blogs", schema: "blogging");