ef core中实现多对多的表映射关系(转载)

转载地址:https://q.cnblogs.com/q/90299/

文档:https://docs.microsoft.com/en-us/ef/core/modeling/relationships

class MyContext : DbContext
{
    public DbSet<Post> Posts { get; set; }
    public DbSet<Tag> Tags { get; set; }
 
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<PostTag>()
            .HasKey(t => new { t.PostId, t.TagId });
 
        modelBuilder.Entity<PostTag>()
            .HasOne(pt => pt.Post)
            .WithMany(p => p.PostTags)
            .HasForeignKey(pt => pt.PostId);
 
        modelBuilder.Entity<PostTag>()
            .HasOne(pt => pt.Tag)
            .WithMany(t => t.PostTags)
            .HasForeignKey(pt => pt.TagId);
    }
}
 
public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
 
    public List<PostTag> PostTags { get; set; }
}
 
public class Tag
{
    public string TagId { get; set; }
 
    public List<PostTag> PostTags { get; set; }
}
 
public class PostTag
{
    public int PostId { get; set; }
    public Post Post { get; set; }
 
    public string TagId { get; set; }
    public Tag Tag { get; set; }
}

猜你喜欢

转载自blog.csdn.net/csdn296/article/details/87982182