Как выглядит хранилище при использовании множества таблиц 1: много или много: много? - PullRequest
3 голосов
/ 11 ноября 2011

У меня есть приложение MVC, которое использует этот объект модели структуры сущностей непосредственно в представлении.Я не уверен, насколько плох шаблон проектирования, но на основе этого примера Мне нужно использовать репозиторий для реализации кэширования.

namespace MVCAzureStore.Services.Caching
{
    public class CachedProductsRepository : CachedDataSource, IProductRepository
    {
        private readonly IProductRepository repository;

        public CachedProductsRepository(IProductRepository repository, ObjectCache cacheProvider) :
            base(cacheProvider, "Products")
        {
            this.repository = repository;
        }

        public List<string> GetProducts()
        {
            return RetrieveCachedData(
                "allproducts",  () => this.repository.GetProducts(),
                new CacheItemPolicy { AbsoluteExpiration = DateTime.UtcNow.AddMinutes(1) });
        }
    }
}

Поскольку в этом представлении используется навигациясвойства EF Мне нужно повторить это понятие (или иметь что-то подобное в моем).

Вопрос

Как мне построить свой репозиторий при обработке многихтаблицы, которые имеют отношение 1: много или много: много?

Буду признателен за любой пример кода, статью или дополнительную информацию, так как я лучше учусь таким образом

Ответы [ 3 ]

1 голос
/ 12 ноября 2011

См. Репозиторий в этом учебном пособии, в котором можно указать загружаемую загрузку для указанных свойств навигации: http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

1 голос
/ 11 ноября 2011

Все, что вам нужно сделать, это убедиться, что repository.GetProducts() с готовностью загружает соответствующие навигационные свойства.

0 голосов
/ 11 ноября 2011

В большинстве случаев хранилище создается для каждого бизнес-объекта.Но это поднимает проблему загрузки объекта, которая не будет выполняться в случае, если отложенная загрузка отключена.

...