Я изучаю предметно-ориентированный дизайн.В настоящее время я пытаюсь написать простое приложение на C #, проектируя его с использованием DDD.Это приложение имеет совокупный корень A, который может содержать 0..n дочерних объектов B. Это может быть представлено чем-то вроде:
class A {
public int Id { get; }
public IList<B> { get; }
}
с хранилищем:
class ARepository {
public A Get(int id) { ... }
public void SaveOrUpdate(A root) { ... }
public void Delete(A root) { ... }
}
Однако я хотел бы добавить подкачку при представлении суб-сущностей B для данного экземпляра A.Как бы я поступил так?Лучшее, что я могу придумать, это изменить A и ARepository на что-то вроде:
class A {
public int Id { get; }
}
class ARepository {
public A Get(int id) { ... }
public void SaveOrUpdate(A root) { ... }
public void Delete(A root) { ... }
public IList<B> GetBForA(A root, int offset, int pageSize, out int numPages) { ... }
}
Это бы сработало, конечно, но я бы потерял простоту и элегантность модели предметной области.
Какова лучшая практика для обработки подстраниц с помощью шаблона репозитория?Я не ищу, как справиться с этим, используя определенные библиотеки и т. Д., А скорее, как справиться с этим на «уровне шаблона».