Le projet sur lequel je travaille utilise une architecture à plusieurs niveaux. Nos couches sont les suivantes:Motif de chargement de l'entité commerciale
- d'accès aux données
- affaires Logique
- Entités d'affaires
- Présentation
Les appels Business Logic vers le bas dans la couche d'accès aux données, et les appels couche de présentation dans la couche Business Logic, et les entités Business sont référencées par chacune d'entre elles.
Nos entités commerciales correspondent essentiellement à notre modèle de données 1-1. Pour chaque table, nous avons une classe. Initialement, lorsque le cadre a été conçu, il n'y avait aucune considération pour la gestion des relations maître-détail ou parent-enfant. Ainsi, tous les éléments de la logique métier, de l'accès aux données et des entités métier ont uniquement référencé une seule table dans la base de données. Une fois que nous avons commencé à développer l'application, il est rapidement devenu évident que le fait de ne pas avoir ces relations dans notre modèle d'objet nous faisait gravement souffrir.
Toutes vos couches (y compris la base de données) sont toutes générées à partir d'une base de données de métadonnées interne que nous utilisons pour générer notre générateur de code local.
La question est quelle est la meilleure façon de charger ou de charger paresseux les relations dans nos entités. Par exemple, disons que nous avons une classe de personne qui a une relation maître-enfant avec une table d'adresses. Cela apparaît dans l'entité commerciale en tant que propriété de collection des adresses sur l'objet Personne. Si nous avons une relation un-à-un, cela apparaîtra comme une propriété d'entité unique. Quelle est la meilleure approche pour remplir et sauvegarder les objets relationnels? Nos entités commerciales n'ont aucune connaissance de la couche Business Logic, de sorte qu'elle ne peut pas être effectuée en interne lorsque la propriété est appelée.
Je suis sûr qu'il existe une sorte de modèle standard pour faire cela. Aucune suggestion? En outre, une des réserves est que la couche DataAcess utilise la réflexion pour construire nos entités. Les procédures stockées retournent un résultat selt basé sur une table, et en utilisant la réflexion, nous peuplons notre objet métier en faisant correspondre les noms des propriétés avec les noms des colonnes. Faire des jointures serait donc difficile.
ckramer - Pouvez-vous extraire l'information de quelque part et l'afficher ici à quoi ressemble ce modèle? Je vais vous marquer comme répondu alors. – Micah