我有一个父对象。我想插入子对象而不更新实体框架核心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的孩子