2017-09-30 60 views
2

有没有人看到我在做什么错了?
ProjectActivityTasks具有UnitOfMeasureIdProjectActivityTaskTypeId。随着它的写法,它认为UnitOfMeasureProjectActivityTaskType。它示数出来就ThenIncludeUnitOfMeasureEFCore Linq Then然后包括两个外键到同一个表

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(); 

回答

5

你可以(也应该)重复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(); 
相关问题