J'ai déterminé qu'un modèle relationnel est plus logique pour une collection particulière dans une base de données. Le problème est que le modèle de domaine a été démarré à l'origine avec un modèle incorporé et qu'il y a une grande quantité de code d'interface utilisateur qui s'attend à ce qu'il soit sous cette forme. La mise à jour du schéma de la base de données n'est pas un problème, mais je suis curieux de savoir s'il existe un moyen facile de remodeler les objets du domaine C# en un modèle relationnel plus démodé. J'ai commencé à écrire des mappeurs (avec AutoMapper) entre la version 1 et la version 2 (voir les classes ci-dessous), mais ça devient vraiment compliqué. Ci-dessous, un code fictif qui décrit un modèle de domaine similaire.MongoDB: Stockage normalisé dans le modèle de domaine intégré
// Existing
class MyClass
{
List<Event> Events { get; set; }
List<Movie> Movies { get; set; }
}
// How it should have been modeled
class MyClass
{
List<int> Events { get; set; } // Stores Event IDs
List<int> Movies { get; set; } // Stores Movie IDs
}
La base de données devra être normalisée.
Si je dois remodeler le modèle de domaine, c'est bien; Je veux juste me sentir à l'aise, j'ai épuisé d'autres possibilités qui pourraient gagner du temps. Y at-il une solution facile à ce problème que je néglige?
Ce n'est pas une mauvaise idée, je ne voulais tout simplement pas utiliser un ORM dans le but de mapper un très petit morceau de la base de données entière - surtout si nous avons utilisé le pilote C# MongoDB pour tout le reste. – senfo