2011-05-25 2 views
8

Existe-t-il un modèle ou un outil pour générer du code directement à partir de la base de données? Je veux utiliser le premier scénario du modèle, mais je ne veux pas de fichier .edmx pour les mappages. Il y a une base de données avec beaucoup de tables et je ne veux pas écrire toutes les classes (je suis fainéant) pour ça. Alors, existe-t-il un modèle pour générer le code et définir automatiquement les annotations/utiliser l'API pour définir les relations, etc., automatiquement à partir de la base de données existante?Outil ou modèle de génération de code du premier modèle EF 4.1

Cela serait également utile dans le scénario suivant. Dites, j'utilisais .edmx avec POCOs et maintenant je ne veux pas les mappings dans le fichier .edmx. Je veux les mappings dans le code. Ce serait génial d'avoir un outil ou un modèle pour générer les mappages dans le code à partir de la base de données existante.

Je commence à apprendre EF 4.1. Je pense que "Le code devient d'abord le modèle premier dans la version 2, c'est-à-dire après que la base de données a été créée/publiée (dans la version 1) et a besoin de quelques changements". Est-ce vraiment vrai? J'aimerais entendre quelques commentaires. Merci.

+1

+1 pour votre paresse –

Répondre

8

Découvrez la fonction 'Reverse Engineer Code First' du EF Power Tools CTP1 qui vient de sortir.

+0

C'est exactement ce dont j'avais besoin. Il manque cependant quelques fonctionnalités mais bon c'est la première version. Merci. – Jonna

0

Pour générer des classes, vous pouvez utiliser la génération de modèle POCO t4. Jetez un oeil à this lien détaillé qui vous aidera à démarrer. De cette façon, vous obtiendrez toutes les classes générées. Pour le mappage, vous pouvez utiliser le style Code uniquement pour Entity Framework mais la génération de classes et de contexte à l'aide du modèle POCO aura beaucoup plus d'avantages que la création du mappage. Imaginez ajouter de nouvelles tables ou modifier les tables, cela impliquera plus de travail. Mais j'aimerai certainement savoir s'il existe un outil de cartographie pour cela.

+0

Je ne veux pas le fichier .edmx pour les correspondances. Je le veux dans le code. – Jonna

+0

Actuellement, j'utilise .edmx avec oracle et c'est douloureux car les insertions d'identité générées en magasin sont perdues si je fais des modifications et les sauvegarde. Si les mappages sont dans le code, je n'ai pas besoin de le changer. Je peux avoir beaucoup plus de contrôle dans le code que le fichier .edmx. – Jonna

+0

Ouais d'accord. Je savais comment générer les cours (même si j'étais paresseux), ce que je me suis servi. Je ne connaissais aucun outil de cartographie. Super à savoir de la réponse de Dave – DotNetInfo

0

Il est possible que vous utilisiez Devart dotConnect pour Oracle lorsque vous travaillez avec une base de données Oracle. Dans ce cas, les informations suivantes vous aideront à choisir l'outil.

La première version d'Entity Framework Power Tools contenait également la capacité de générer un modèle Code-First avec un mappage fluide à partir d'une base de données existante. Bien qu'utile, cette fonctionnalité est limitée quant à sa flexibilité: le développeur ne peut que définir la chaîne de connexion; par la suite, les classes sont générées à partir de tous les objets de base de données disponibles pour l'utilisateur. Ce n'est pas très pratique, car dans Oracle, par exemple, de nombreux schémas contenant des centaines et parfois des milliers de tables sont à la disposition de l'utilisateur. Plutôt que de recourir à cette fonctionnalité limitée, les utilisateurs des fournisseurs Devart ADO.NET peuvent bénéficier des capacités de développement impressionnantes d'Entity Developer, un concepteur EF livré avec des fournisseurs Devart. Il est également possible de choisir entre l'approche Database-First, fournie dans EF Power Tools, et l'approche Model-First, dans laquelle les classes Code-First sont créées dans le concepteur EDM. Comparée à EF Power Tools, l'approche Database-First du développement de modèles EF Code-First permet également de sélectionner les objets qui doivent être disponibles dans le modèle, de définir des règles de dénomination pour la génération de noms de classe et de propriétés, etc. sur. En outre, le modèle résultant peut être modifié et amélioré dans le concepteur. Pour mieux répondre aux besoins des développeurs, la génération de code Code-First dans Entity Developer à la fois pour C# et VB est basée sur le modèle T4 qui est facilement accessible et modifiable dans l'éditeur T4 riche en fonctionnalités contenu dans Entity Developer.

Pour plus d'informations sur le développement de code Premier développeur Entité, voir « Entité Developer - EF premier code DbContext modèle » http://www.devart.com/blogs/dotconnect/index.php/entity-developer-ef-code-first-dbcontext-template.html

Questions connexes