2010-05-18 2 views
1

Donc, j'ai cherché la réponse à cela, mais je ne trouve rienExiste-t-il un ORM qui permet à un "plugin" d'étendre la base de données?

J'ai un Entity Framework Model (MyModel1) - pour l'instant, nous dirons qu'il contient un tableau "Utilisateurs"

cela fait partie d'une grande application, qui a une référence à un projet « adresses »

Le projet adresses contient un modèle Entity Framework (MyModel2), il contient une table d'utilisateurs, et une table d'adresses (pointant vers la même base de données

L'application principale a un contrôle qui édite l'utilisateur, et dans ce contro l il a un contrôle "adresses" qui existe réellement dans le projet "Adresses". Pour que cela fonctionne, le contrôle Utilisateur transmet l'objet Utilisateur au contrôle d'adresses, cependant, comme l'utilisateur qui a été passé appartient à MyModel1 et non MyModel2, un autre objet Utilisateur doit être chargé, puis il peut être utilisé.

Ce n'est pas idéal car j'ai dû charger l'utilisateur deux fois. Existe-t-il un moyen de dire, MyModel2 étendant MyModel1, qui ajoute simplement une relation à "Utilisateur". Ou y a-t-il un ORM qui pourrait mieux gérer cela? Ou même un motif de conception qui permettrait de mieux gérer cela?

+0

Quelle plate-forme utilisez-vous? Java, .NET ou autre chose? –

+0

sorry, ASP.Net C# – Paul

Répondre

0

J'ai découvert Fluent NHibernate qui semble me donner une charge plus de contrôle sur la façon dont la couche de données est mis en place, grâce à un code sérieusement fou, j'ai pu étendre les entités dans une sorte plug-in de manière très cool

-1

Il semble que vous ayez aujourd'hui des projets qui combinent l'interface utilisateur, la logique métier et la logique d'accès aux données.

Une meilleure approche consisterait à placer votre couche d'accès aux données dans un seul projet distinct de la logique métier et de l'interface utilisateur. Créez un EDMX qui inclut à la fois les utilisateurs et les adresses et fournissez un ObjectContext unique qui peut être utilisé pour gérer l'ensemble du processus.

Regardez également le modèle Repository.

+0

Ok, donc l'exemple est mauvais - mais on peut supposer qu'il n'est pas vraiment possible de mettre les utilisateurs et les adresses dans le même fichier edmx. Ce que vous décrivez est idéal, mais n'est pas possible dans ce cas – Paul

Questions connexes