Entity Framework 4 (Ассоциации, настроенные с помощью фильтров) - PullRequest
5 голосов
/ 06 октября 2011

У меня есть пользовательский объект, который содержит коллекцию объектов опроса.Мне бы хотелось, чтобы в ассоциацию был включен фильтр отношений, такой как 'IsCompleted', поэтому всякий раз, когда я стремлюсь загрузить (или лениво загрузить) коллекцию, происходит такая фильтрация.

Это то, что мы имеемконтроль над?

спасибо!

Ответы [ 2 ]

0 голосов
/ 06 октября 2011

Загрузка ассоциаций для объекта всегда просто получает их все, потому что вы использовали Include во время первоначального запроса, называемый Load после факта, или ленивая загрузка вызвала его.Концепция такого рода свойств навигации предполагает такое поведение.

EJ Brennan's answer будет работать хорошо.Если вас не беспокоит загрузка всех опросов за кулисами (из-за проблем производительности / памяти или чего-то еще), вы можете также рассмотреть возможность создания отдельного свойства с помощью частичного определения класса в вашей сущности, который возвращает отфильтрованный список.

public partial class User
{
    public ICollection<Survey> CompletedSurveys
    {
        get { return Surveys.Where(s => s.IsCompleted); }
    }
}
0 голосов
/ 06 октября 2011

Если вы используете серверную часть БД, которая поддерживает представления, вы можете рассмотреть возможность использования представления в качестве источника для сбора объектов опроса.Используйте возможности БД для выполнения этой фильтрации за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...