У меня есть запрос, в котором мой ThenInclude Where должен получить доступ к данным в исходном наборе данных, например.
var bikes = context.Bikes
.Include(bike => bikes.Models)
.ThenInclude(model => model.Spec.Where(spec=> spec.SpecYear == bike.YearCreated ))
.ToList();
В настоящее время у меня есть это в двух отдельных запросах, но это сэкономит много времени, если я выполню этот запрос в базе данных.
Попробуйте использовать проекцию вместо Include
:
var bikes = context.Bikes
.Select(bike = new Bike
{
Id = bike.Id,
// ... other fields
Models = bike.Models.Select(m => new Model
{
Id = m.Id
// ... other fields
Spec = m.Spec
.Where(spec => spec.SpecYear == bike.YearCreated)
.ToList()
})
})
.ToList();
Спасибо, я никогда не думал использовать linq таким образом.