- 外键约束
- 惯例
- 数据注解
- 流式 API
外键约束
注意
当前章节中涉及的配置一般适用于关系数据库。这里展示的扩展方法在你安装了关系数据库提供程序之后就能获得(由
Microsoft.EntityFrmeworkCore.Relational程序包共享)。
外键约束是为模型中的关系引入的。
惯例
按照惯例,外键约束命名为 FK_<依赖实体类型名称>_<主实体类型名称>_<外键属性名称>。对于组合键,<外键属性名> 则为用下划线分隔的外键属性名。
数据注解
不能使用数据注解配置外键约束。
流式 API
可以使用流式 API 来来为模型中的关系配置外键约束的名称。
class MyContext : DbContext{public DbSet<Blog> Blogs { get; set; }public DbSet<Post> Posts { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Post>().HasOne(p => p.Blog).WithMany(b => b.Posts).HasForeignKey(p => p.BlogId).HasConstraintName("ForeignKey_Post_Blog");}}public class Blog{public int BlogId { get; set; }public string Url { get; set; }public List<Post> Posts { get; set; }}public class Post{public int PostId { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; }public Blog Blog { get; set; }}
