Я использую Azure AppFabric для кэширования с новым репозиторием. Мой репозиторий выглядит примерно так:
public interface IMyRepository
{
public IEnumerable<K> Select(IQueryable<T> someQuery)
public IEnumerable<T> SelectAllStudents() // should I replace T with Children in my repository?
}
Мое намерение состоит в том, чтобы выставлять и кэшировать запросы OData от клиента, следовательно, IQueryable. У меня также есть вторичная необходимость часто возвращать данные, которые выглядят так:
public class Children
{
public string Name {get;set;}
public int CountOfToys {get;set;}
public List<Toys> {get;set;}
}
Однако моя база данных - это 1..many
Детей для игрушек.
Текущее приложение ASP.NET использует свойства Навигации EF непосредственно на странице aspx, чтобы заполнить ViewModel выше, однако я не знаю наиболее эффективного маршрута, переносящего эту функциональность в хранилище.
Из-за кэширования AppFabric мои ограничения для результатов IEnumerable следующие:
- Возвращаемый объект не должен иметь тип значения
- Возвращаемый объект должен быть сериализуемым
- Как реализовать IMyRepository для поддержки кэширования запросов OData?
- Можно ли репозиторию создавать не только классы моделей, но и совокупный класс "children"? Какой термин подходит для этого?
- Предполагая, что вышеприведенный шаг в порядке, я должен использовать свойства навигации для заполнения этого дополнительного класса?