.Net Ef核心:我不想一次将数据放入多个表[duplicate]

jdg4fx2g  于 2022-12-01  发布在  .NET
关注(0)|答案(1)|浏览(133)

此问题在此处已有答案

Prevent Adding New Record on Related Table Entity in Entity Framework(1个答案)
Entity Framework Core insert record into database(2个答案)
4天前关闭。
我建立了一个EF核心代码优先管理的数据库。我有两个相关的表。我想向一个表中插入数据。但由于它与另一个表有关系,它试图将数据抛入另一个表。而我只想记录一个表。我该如何做呢?
密码:
1.工作台

public class JobTable
        {
            [Key]
            public int ID_JOB { get; set; }
            public JobType JobType { get; set; }
            public string JOB_KEY { get; set; }
            public TimeSpan JOB_TIME { get; set; }
            public int? DAY { get; set; }
            public Boolean IS_ACTIVE { get; set; }
            public string? DESCRIPTION { get; set; }
            public CustomUser CustomUser { get; set; }
        }

1.表格:

public class JobType
    {
        [Key]
        public int ID_JOB_TYPE { get; set; }
        public string JOB_TYPE_NAME { get; set; }
        public List<JobTable> jobTable { get; set; }
    }

EF代码:

context.JobTable.Add(jobTable);
            
  context.SaveChanges();

我只想添加数据到'jobtable'表。但它试图抛出数据到'jobtype'表以及,因为它是相关的'jobtype'表。我不想这样做。我该怎么做呢?

erhoui1w

erhoui1w1#

当插入JobTable记录时,您目前定义JobTable的方式也会为JobType建立新记录。
而是修改JobTable以应用外键属性(JobTypeId)来定义与JobType表得关系.

public class JobTable
{
    ...

    public int JobTypeId { get; set; }
    
    public virtual JobType JobType { get; set; }

}

public class JobType
{
    ...

    public ICollection<JobTable> JobTables { get; set; }
}

在插入新的JobTable记录时,需要将JobTypeId提供给要插入的实体数据。

参考

One-to-Many Relationship Conventions in Entity Framework Core (Convention 4)

相关问题