2010-05-06 9 views
1

Essayer de comprendre la meilleure approche pour modéliser une base de données lorsque nous utilisons Entity Framework 4 comme couche ORM. Nous allons utiliser asp.net mvc 2 pour l'application. Cela vaut-il la peine d'essayer de modéliser à l'aide du modélisateur de diagrammes de classes fourni avec Visual Studio 2010 dans lequel vous configurez graphiquement vos modèles dans le fichier EDMX, puis générez la structure de la base de données?Comment modéliser ma base de données en utilisant entity framework 4?

Je suis tombé sur un tas de problèmes non triviaux et pour des mappages de plusieurs à plusieurs complexes ou des entités de clés primaires multiples, la réponse n'est pas aussi évidente, même après avoir passé un certain temps avec les outils. Je pense qu'il est facile à ce stade d'abandonner et de commencer à modéliser la base de données en utilisant des outils de modélisation de base de données réels, puis d'essayer de générer l'EDMX à partir de la base de données plutôt que d'essayer le modèle.

+0

Pouvez-vous donner quelques exemples de ce qui n'a pas fonctionné pour vous dans EF4? Si vous faites model-first, en général, vous obtiendrez un meilleur modèle d'objet, et la base de données sera mieux alignée sur cela, plutôt que d'être un magasin de données. Cela a à la fois des avantages et des inconvénients. Mais si la base de données n'est utilisée que par votre application, ne pas avoir à mapper les classes manuellement est généralement un plus grand avantage. –

+0

DB est complètement nouveau et seulement utilisé par cette application. Par exemple une table de liens entre 3 entités, finissant par avoir la clé primaire étant une combinaison des PK de chacune des 3 entités. – Andreas

Répondre

1

C'est vraiment une question de préférence. Si vous êtes à l'aise dans SQL Server, c'est probablement le meilleur endroit pour commencer. Mais si vous êtes plus un programmeur C#, il est parfois plus facile de démarrer dans le concepteur EDMX, de créer le modèle et de lui demander de déterminer à quoi ressemblera la base de données.

Bien sûr, si vous commencez par le modèle, vous devrez tout de même accéder à SSMS et ajouter des index et peut-être renommer certains FK et tables à votre convenance. Ensuite, vous pouvez remettre le modèle à jour avec une mise à jour du modèle.

La modélisation de l'héritage est également quelque chose que vous devrez faire dans le concepteur, mais vous pouvez le faire dans SSMS ou dans le concepteur EDMX. Pour l'héritage, je préfère d'abord SQL parce qu'il y a une décision explicite quant à la forme d'héritage que vous voulez - par hiérarchie, par classe ou par type concret.