Другой ответ, опубликованный thatsalok, правильный, Include
не может быть отфильтрован. Тем не менее, есть все еще способы достичь того, что вы хотите.
Include
операторы не позволяют фильтровать, но операторы Select
делают. Это означает, что вы можете попросить EF дать вам именно то, что вы хотите.
var result = await _dbContext
.Invitations
.Where(i => i.InvitationId.ToString().Equals(model.InvitationId))
.Select(i => new
{
Invitation = i,
Guest = i.Guests.FirstOrDefault(g => g.GuestId.ToString().Equals(model.GuestId))
})
.FirstOrDefaultAsync();
// demo usage
var invitation = result.Invitation;
var guest = result.Guest;
Я настоятельно советую не использовать сам класс сущности для хранения ограниченного списка, поскольку это может стать источником ошибок, если эта сущность все еще будет использоваться в контексте базы данных. Вместо этого используйте специально созданный класс DTO (или viewmodel), который содержит объекты guest и приглашения отдельно.