Не может загружать связанные данные с помощью Include или ThenInclude или Select / Many с ОДНЫМ запросом [duplicate]
На этот вопрос уже есть ответ:
EF Core Второй уровень ThenInclude Missworks 1 ответ1 Test имеет 1 TestType.
Мне нужно загрузить все объекты TestType, относящиеся к Test OR, а не к Schoolclass, Subject и Assigned Pupils для теста (PupilsTests)
.SelectMany или .Select не удается выполнить здесь во время выполнения.
Я пробовал разные комбинации Include и ThenInclude, но у меня не было шансов получить тесты с помощью PupilsTests.
Я могу получить тесты PupilsTests только тогда, когда начинаю свой запрос сcontext.Tests
но это приводит к тому, что я получаю только TestTypes, назначенные для теста -внутреннее соединени - но мне нужны все TestTypes и их тесты, а также их PupilsTests, и я хочу это в ОДНОМ запросе.
var testtypes = await context.TestTypes
.Include(x => x.Schoolclass)
.Include(x => x.Subject)
.Include(x => x.Tests.SelectMany(z => z.PupilsTests))
.Where(t => t.SchoolyearId == schoolyearId)
.AsNotTracking()
.ToListAsync();
public class TestType
{
public TestType()
{
Tests = new HashSet<Test>();
}
// Props removed for clarity
public int Id { get; set; }
public ISet<Test> Tests { get; set; }
public Schoolyear Schoolyear { get; set; }
public Schoolclass Schoolclass { get; set; }
public Subject Subject { get; set; }
public int SchoolyearId { get; set; }
}
public class Test
{
public Test()
{
PupilsTests = new HashSet<PupilTest>();
}
// Props removed for clarity
public int Id { get; set; }
public ISet<PupilTest> PupilsTests { get; set; }
public TestType TestType { get; set; }
}