• 数据表映射
    • 惯例
    • 数据注解
    • 流式 API

    数据表映射

    注意

    当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由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");