AspNet CORE - EF Many To Many to over same table with Join table(AspNet CORE - EF 多对多关系通过联接表实现同一表格的重复)
创始人
2024-09-20 05:00:19
0

首先,我们需要创建一个实体类来表示Join table,该表将用于连接两个具有多对多关系的实体。

public class JoinTable
{
    public int Entity1Id { get; set; }
    public Entity1 Entity1 { get; set; }
    public int Entity2Id { get; set; }
    public Entity2 Entity2 { get; set; }
}

接下来,我们创建两个实体类Entity1和Entity2,它们将具有多对多关系。

public class Entity1
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection JoinTables { get; set; }
}

public class Entity2
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection JoinTables { get; set; }
}

现在,我们需要在DbContext类中配置实体类之间的多对多关系。

public class ApplicationDbContext : DbContext
{
    public DbSet Entity1s { get; set; }
    public DbSet Entity2s { get; set; }
    public DbSet JoinTables { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity()
            .HasKey(jt => new { jt.Entity1Id, jt.Entity2Id });

        modelBuilder.Entity()
            .HasOne(jt => jt.Entity1)
            .WithMany(e1 => e1.JoinTables)
            .HasForeignKey(jt => jt.Entity1Id);

        modelBuilder.Entity()
            .HasOne(jt => jt.Entity2)
            .WithMany(e2 => e2.JoinTables)
            .HasForeignKey(jt => jt.Entity2Id);
    }
}

现在,我们可以使用这些实体类和DbContext来执行多对多关系的操作,例如添加关联关系。

public class Program
{
    static void Main(string[] args)
    {
        using (var context = new ApplicationDbContext())
        {
            var entity1 = new Entity1 { Name = "Entity1" };
            var entity2 = new Entity2 { Name = "Entity2" };

            var joinTable = new JoinTable
            {
                Entity1 = entity1,
                Entity2 = entity2
            };

            context.Entity1s.Add(entity1);
            context.Entity2s.Add(entity2);
            context.JoinTables.Add(joinTable);

            context.SaveChanges();
        }
    }
}

以上示例演示了如何使用AspNet Core和Entity Framework Core实现具有Join table的多对多关系。

相关内容

热门资讯

辅助一下!边锋干瞪眼技巧,开心... 辅助一下!边锋干瞪眼技巧,开心门一番有挂吗,其实是真的有挂(哔哩哔哩)小薇(辅助器软件下载)致您一封...
分享一下!蜜瓜大厅辅助免费下载... 分享一下!蜜瓜大厅辅助免费下载,心悦提坑神器软件下载,总是是真的有挂(哔哩哔哩)1、蜜瓜大厅辅助免费...
解迷一下!拱趴大菠萝9人场技巧... 解迷一下!拱趴大菠萝9人场技巧,友乐广西南宁透视,果然真的是有挂(哔哩哔哩)1、完成拱趴大菠萝9人场...
专业一下!财神十三张脚本辅助,... 专业一下!财神十三张脚本辅助,超圣大厅可控是什么意思,本来存在有挂(哔哩哔哩)1、该软件可以轻松地帮...
揭露一下!填大坑微信小程序辅助... 揭露一下!填大坑微信小程序辅助,皇豪互众智能辅助器,原来是有挂(哔哩哔哩)1、填大坑微信小程序辅助辅...
解密一下!填大坑辅助器,蜀门手... 解密一下!填大坑辅助器,蜀门手游辅助免费脚本,总是真的是有挂(哔哩哔哩)1、玩家可以在蜀门手游辅助免...
解迷一下!广西老友有破解吗,u... 解迷一下!广西老友有破解吗,uuganmes辅助器,其实真的是有挂(哔哩哔哩)1、玩家可以在广西老友...
专业一下!圣盛荆州晃晃三五七辅... 专业一下!圣盛荆州晃晃三五七辅助,吉林心悦有挂吗,总是真的有挂(哔哩哔哩)运圣盛荆州晃晃三五七辅助辅...
必备一下!新超圣辅助靠谱不,奇... 必备一下!新超圣辅助靠谱不,奇迹陕西辅助,真是存在有挂(哔哩哔哩)1、必备一下!新超圣辅助靠谱不,奇...
解谜一下!情怀麻将辅助,蜀渝牌... 解谜一下!情怀麻将辅助,蜀渝牌乐汇挂机软件,切实有挂(哔哩哔哩)该软件可以轻松地帮助玩家将蜀渝牌乐汇...