EFCore Linq然后将两个外键包含在同一个表中

有谁看到我做错了什么?
ProjectActivityTasks具有UnitOfMeasureIdProjectActivityTaskTypeId 。 按照它的编写方式,它认为UnitOfMeasure转到ProjectActivityTaskType 。 在ThenIncludeUnitOfMeasureThenInclude

ProjectActivityTaskType不包含UnitOfMeasure的定义

哪个是对的。 UnitOfMeasure转到ProjectActivityTasks

我正在引用此页面但它似乎没有这样工作: https : //docs.microsoft.com/en-us/ef/core/querying/related-data

 var qry = await _projectActivityRepository.GetAll() .Include(x => x.ProjectActivityVehicles) .ThenInclude(x => x.Vehicle) .Include(x => x.ProjectActivityTasks) .ThenInclude(x => x.ProjectActivityTaskType) .ThenInclude(x => x.UnitOfMeasure) .Where(x => x.Id == Id && x.TenantId == (int)AbpSession.TenantId) .FirstOrDefaultAsync(); 

您可以(并且应该)重复Include(x => x.ProjectActivityTasks)部分:

 var qry = await _projectActivityRepository.GetAll() .Include(x => x.ProjectActivityVehicles) .ThenInclude(x => x.Vehicle) .Include(x => x.ProjectActivityTasks) .ThenInclude(x => x.ProjectActivityTaskType) .Include(x => x.ProjectActivityTasks) .ThenInclude(x => x.UnitOfMeasure) .Where(x => x.Id == Id && x.TenantId == (int)AbpSession.TenantId) .FirstOrDefaultAsync();