Skip to content

Latest commit

 

History

History
73 lines (55 loc) · 1.65 KB

File metadata and controls

73 lines (55 loc) · 1.65 KB

数据表映射

注意

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

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

惯例

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

数据注解

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

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

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

[Table("blogs",Schema = "blogging")]
public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

流式 API

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

using Microsoft.EntityFrameworkCore;
class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .ToTable("blogs");
    }
}

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

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

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