实体框架核心包含为不跟踪

时间:2020-11-09 10:24:10

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

我有以下查询:

DbContext.Export
  .Include(e => e.ExportPackages).ThenInclude(ep => ep.Package)
  .FirstOrDefault(e => e.Id == 123);

我想跟踪ExportPackages,但是我不想跟踪相关的软件包。 我该怎么办?

我有什么:

var export = DbContext.Export.AsNoTracking()
  .Include(e => e.ExportPackages).ThenInclude(ep => ep.Package)
  .FirstOrDefault(e => e.Id == 123);

DbContext.ChangeTracker.TrackGraph(export, c =>
{
    // track everything except Packages
    if (c.Entry.Entity is not Package)
    {
        c.Entry.State = EntityState.Detached;
    }
});

它可以工作,但是看起来它首先跟踪实体,然后分离它们

0 个答案:

没有答案