Изменение формы данных (?) С помощью Linq-To-Sql, DDD и шаблона репозитория - PullRequest
1 голос
/ 06 апреля 2011

В моей базе данных есть следующая схема:

enter image description here

(ОК, не совсем, но это работает в контексте моего вопроса.)

В моей доменной модели у меня есть класс 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.)

Ваши мысли о моем подходе приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...