0

Nous utilisons des méthodes DDD dans notre projet actuel. Notre problème est que nous avons beaucoup de contextes bornés et que chaque contexte est une architecture en couches qui contient sa couche de persistance. Le problème est que par exemple dans un contexte borné nous devons référencer des données d'autres contextes bornés par exemple le contexte IdentityAccess est le contexte qui est responsable de la gestion de l'utilisateur, donc il contient UserModel mais nous devons référencer l'utilisateur Dans un autre contexte délimité, nous créons un SubscriberUserModel qui contient des informations de sous-ensembles du modèle utilisateur dans ce contexte délimité. Nous avons un projet de migration qui contient tous les modèles de tous nos contextes bornés qui sont utilisés pour gérer les migrations et notre base de données mais nous sommes confrontés à un problème. Nous ne pouvons pas avoir plus d'une entité qui se réfèrent à la même table Ma question est comment traiter cette question de manière intelligente C'est l'exception EF quand nous essayons de générer une nouvelle migrationDDD Entity Framework avec plusieurs contextes liés Intégration Problème

enter image description here

Répondre

3

La réponse est ne pas! Du point de vue de DDD, vous vous trompez. Les Contextes bornés ne devraient pas être liés à des relations comme dans votre cas, mais à des tables indépendantes qui n'ont rien à voir avec une table dans un autre contexte. Ce que vous devez faire est de créer un utilisateur dans le contexte A qui a les propriétés nécessaires pour exister dans le contexte A. Les informations sur l'utilisateur du contexte A doivent être transférées du contexte B, via l'événement, la file d'attente, le service Web, un déclencheur de quelque sorte, etc., mais ils ne devraient pas être liés à une relation. De cette façon, vous pouvez copier des données inutiles du contexte B qui n'ont rien à voir avec l'entité et le processus métier dans le contexte A. Bien qu'ils portent le même nom, leur rôle et leur logique dans leurs contextes sont complètement différents. Ne laissez pas cela vous tromper!

Une bonne vidéo sur le sujet est par Julie Lerman on Pluralsight (pas une annonce :)).