EF 4.2, Репозиторий и UoW - как включить отношения? - PullRequest
0 голосов
/ 22 декабря 2011

Работал с EF 4.2, но не с репозиторием или модулем работы.Я пытаюсь перейти к ним, но сталкиваюсь с проблемой.Я следовал моделям, в которых вы создаете абстрактный класс repostirotybase, но у меня возникли проблемы при создании запросов, в которых я хочу использовать метод .Include () для быстрой загрузки.Это что-то, что вы запекаете в хранилище (так что каждое хранилище должно было бы его реализовать) или дальше на уровне, который потребляет данные.

Что сбивает с толку, так это то, что если мне нужно поместить его в репозиторий (что, как представляется, имеет место), то это ограничение, так как я должен предоставить один размер, подходящий всем моим потребителям?

1 Ответ

1 голос
/ 22 декабря 2011

Создайте определенный репозиторий и добавьте специальные методы для загрузки сущности с отношениями.Например:

public class ProductRepository
{
    public Product GetProductWithFeatures(int key)
    {
        return context.Products
                      .Include(p => p.Features)
                      .FirstOrDefault(p => p.Id == key);
    }
}

Другой подход заключается в предоставлении IQueryable в вашем хранилище, чтобы вы могли напрямую вызывать Include, но в таком хранилище частично не удается отделить верхний уровень от EF.

...