Вы не можете фильтровать загруженные данные в EF.Include
Операция не поддерживает фильтрацию или сортировку.
Вы должны использовать либо проекцию на пользовательский тип (или анонимный тип):
var query = from u in context.Users
where u.UserId == 5
select new UserFiltered
{
User = u,
Addresses = u.Addresses.Where(a => !a.IsRowDeleted)
};
UserFiltered u = query.FirstOrDefault();
Или вы должны разделить ваш запрос на два отдельныхзапросы и использовать явную загрузку:
context.ContextOptions.LazyLoadingEnabled = false;
var user = context.Users.FirstOrDefault(u => u.UserId == 5);
((EntityCollection<Address>)user.Addresses)
.CreateSourceQuery()
.Where(a => !a.IsRowDeleted)
.Execute();
Или вы можете просто использовать два запроса:
var user = context.Users.FirstOrDefault(u => u.UserId == 5);
var addresses = context.Addresses.Where(a => a.User.UserId == 5 && !a.IsRowDeleted).ToList();