Entity Framework 5. Можно ли загружать отношения (ассоциации) без ленивой и нетерпеливой загрузки?

Я пытаюсь разработать общий репозиторий на Entity Framework 5 для получения данных из любой таблицы, и я хочу использовать отключенный контекст без ленивой и нетерпеливой загрузки. Является ли это возможным? Я использую код ниже, но он не работает:

T это тип объекта.

public IList<T> GetData(Expression<Func<T, bool>> expression)
{
        using (var context = new Context())
        {
            return context.Set<T>().Where(expression).ToList();
        }
}

Просто основная сущность грузится, отношений нет.


person deverton    schedule 16.10.2013    source источник
comment
Я хочу использовать отключенный контекст без ленивой и нетерпеливой загрузки - не совсем уверен, что вы имеете в виду, у вас может быть только одно или другое.   -  person Rocklan    schedule 16.10.2013
comment
Общий репозиторий — почему? Вы сталкиваетесь с первым из многих препятствий. Вы должны параметризовать оператор Include общим способом. Не хорошо.   -  person Gert Arnold    schedule 16.10.2013
comment
@ Герт Арнольд, использовать оператор Include в общем виде - моя проблема. Итак, вопрос: можно ли загружать сущности и ваши отношения без ленивой загрузки и без оператора Include в общий репозиторий? Почему бы не использовать общий репозиторий для базовых операций CRUD?   -  person deverton    schedule 26.10.2013
comment
Потому что общие репозитории, как правило, становятся не чем иным, как тонкими оболочками вокруг DbSets. Составные операции CRUD становятся более запутанными, и зачем использовать один слой для базовых операций, а другой — для более сложных? В любом случае, это ваш выбор. Вы можете добавить аргумент IEnumerable<string>, чтобы указать Includes, или IEnumerable<Expression<Func<T, object>>> и добавить Includes в набор в цикле foreach.   -  person Gert Arnold    schedule 26.10.2013