如何在EF Core 3.0中插入子项而不更新父项

时间:2020-10-17 14:46:55

标签: c# entity-framework entity-framework-core

我有一个父对象。我想插入子对象而不更新实体框架核心3.0中的父对象。

Parent = context.Table1.AsNoTracking()                    
                    .Include(s => s.Table2).AsNoTracking()                    
                    .Include(s => s.Table3).ThenInclude(y=>y.Table4).ThenInclude(s=>s.Table5).ThenInclude(x => x.Table6).ThenInclude(s => s.Table7).ThenInclude(s => s.Table9).AsNoTracking()
                    .Include(s => s.Table10).AsNoTracking()                                  
                    .Where(somecondition).AsNoTracking()
                    .Select(t => new Table1
                    {
                      Id= Table1.Id,
                      Name=Table1.Name
                      Property3=t.Property3.Select(s=> new Table3{...}).ToList();
            
            
                    }

父表有多个子表,并且有一些不需要的图像数据,因此我可以使用上述逻辑来获取所需的字段列表。

在代码的某个时刻,我需要在表-Table12中插入一些子对象。

Table12.ParentId= iParentId;
Table12.Name="TestName";
Table12.Value="TestValue";
context.Entry(Table12).State = EntityState.Added;
context.Entry(Table12.Parent).State = EntityState.Unchanged;//Tried detached as well-not working
 await context.SaveChangesAsync();

问题是,Table12上的插入内容尝试使用父对象更新Table1,该父对象对我不需要的字段具有空值。请建议我如何仅插入具有parentId的孩子

0 个答案:

没有答案