В моей базе данных есть следующая схема:
(ОК, не совсем, но это работает в контексте моего вопроса.)
В моей доменной модели у меня есть класс RestaurantMenu (корневая сущность), который содержит коллекцию объектов MenuItem, которые выглядят следующим образом:
public class MenuItem
{
public String Category { get; set; }
public Guid ID { get; set; }
public String Name { get; set; }
public Decimal Price { get; set; }
}
Я хочу иметь возможность запросить свой репозиторий, чтобы вернуть список объектов MenuItemна основе идентификатора ресторана и типа меню (название).Как видите, это означает, что мне нужно выполнить несколько соединений и вернуть уплощенное представление информации меню.Я использую Linq-to-SQL (не мой выбор) для технологии доступа к данным.
Как настроить запрос L2S для возврата нужных данных?
Следующий вопрос больше дляDDD, у меня есть отдельный вариант использования, который более непосредственно работает с таблицами Menu, Category и Item для создания и редактирования «шаблонов» меню.Таким образом, я вижу Меню как Совокупный Корень и имею MenuService как фасад для класса Menu в моей модели домена и MenuRepository, который обрабатывает доступ к данным (получить, найти, удалить и сохранить).Несколько вопросов по этому аспекту:
Должен ли я иметь отдельный репозиторий (и сервис) для класса RestaurantMenu или он должен предоставляться по тем же каналам?
Является ли RestaurantMenu лучше в качестве подпрограммы-класс меню, возможно?
(Имейте в виду, что мне также нужна возможность «сохранять» в таблице ItemPricing, когда администратор ресторана «редактирует» меню для своего ресторана. Это не изменится)содержимое таблицы Menu / Category / Item любым способом - только данные ItemPricing.)
Ваши мысли о моем подходе приветствуются.