首页 > 解决方案 > EF Core 保存旧连接表记录

问题描述

我有一个旧的连接表,我试图在其中插入一条记录。“RequistionId”来自新创建的申请,“PanelId”是从查找表中填充的。

public class RequisitionPanel 
{         
    public int RequisitionId { get; set; }       
    public int PanelId { get; set; }
    public string PanelDescription { get; set; }
    ...

    public Requisition Requisition { get; set; }
    public Panel Panel { get; set; }     
}

public class Requisition 
{
    public int Id { get;set; }
    ...

    public RequisitionPanel RequsitionPanel { get; set; }
}


public class Panel
{
    public int Id { get;set; }
    ...

    public RequisitionPanel RequisitionPanel { get;set; }
}

数据库上下文

public class AppDbContext : DbContext
{

    public AppDbContext(DbContextOptions<AppDbContext> options)
       : base(options)
    {
    }    

    public DbSet<Panel> Panels { get; set; }
    public DbSet<Requisition> Requisitions { get; set; }
    public DbSet<RequisitionPanel> RequisitionPanels { get; set; }


    protected override void OnModelCreating(ModelBuilder modelBuilder)
    { 
        ...
        modelBuilder.Entity<RequisitionPanel>().HasKey(r => new { r.RequisitionId, r.PanelId });
        ...      
    }

}

RequistionPanel当我保存“申请”并PanelId从“面板”表中插入时,如何自动保存?更具体地说,我如何PanelId将 与上下文相关联,以便将其保存在字段的RequistionPanel表中PanelId

任何帮助将非常感激。

标签: .net-corejointableef-core-2.2

解决方案


推荐阅读