Я не нашел конкретных примеров этого. Я знаю, что у каждого ограниченного контекста есть свои версии сущностей, и вы не должны делиться сущностями в разных контекстах. Но как мне управлять этим в связи с использованием ORM, такого как EF?
Например, ниже приведены мои сущности и ограниченные контексты, в которых они существуют:
Ingredient (контекст, ограниченный сущностью A)
Рецепт (контекст, ограниченный сущностью b)
Ингредиент (контекст, ограниченный сущностью b)
MenuItem (совокупный ограниченный контекст b)
Теперь каждый ограниченный контекст будет иметь свою собственную версию ингредиента. Но так как у меня есть особый контекст БД в EF для управления этим, как именно это организовать? Я использую CQRS, чтобы при необходимости вызывать события. Мой план состоял в том, чтобы поддерживать список идентификаторов в моей сущности Recipe и извлекать соответствующие ингредиенты из базы данных, чтобы данные не дублировались.
Но я не уверен, что моя проблема с дублированием данных действительна. В моем примере выше, представьте себе бизнес, который продает ингредиенты, но также имеет предустановленные рецепты (со списком ингредиентов), которые он может продавать в продовольственном киоске.
В одном контексте ингредиенты не имеют отношения к другой сущности, в то время как в другом контексте это дочерняя сущность (в совокупности). Я могу видеть, как это должно быть разработано (отдельные объекты в ограниченном контексте), но когда дело доходит до БД, как это на самом деле происходит? Что, если знание свойств / предметной области, которые необходимо отслеживать в контексте A по сравнению с контекстом B для ингредиентов, отличается? Будет ли это в конечном итоге отдельной таблицей? Я немного запутался в этом.
Редактировать: Пожалуйста, имейте в виду, что я использую только 1 базу данных здесь. Я понимаю, что обычно у вас есть отдельная БД на ограниченный контекст, чтобы избежать этого сценария, но мне было интересно, как это можно сделать с помощью 1 БД.