EFCore Linq然后将两个外键包含在同一个表中
有谁看到我做错了什么?
ProjectActivityTasks
具有UnitOfMeasureId
和ProjectActivityTaskTypeId
。 按照它的编写方式,它认为UnitOfMeasure
转到ProjectActivityTaskType
。 在ThenInclude
的UnitOfMeasure
上ThenInclude
了
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();