gpt4 book ai didi

c# - EFCore Linq ThenInclude 两个外键到同一个表

转载 作者:行者123 更新时间:2023-11-30 19:53:46 26 4
gpt4 key购买 nike

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

,它在 ThenInclude 上出错

ProjectActivityTaskType does not contain a definition for UnitOfMeasure

这是正确的。 UnitOfMeasure 转到 ProjectActivityTasks

我引用了这个页面,但它似乎不是这样工作的:https://learn.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();

关于c# - EFCore Linq ThenInclude 两个外键到同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com