2009-04-23 2 views
4

J'utilise Linq2Sql et je suis fatigué de recréer le dbml chaque fois que la base de données change. Est-il possible de scripter la création de mon modèle étant donné que je veux toutes les tables et tous les procs? Idéalement, cela ferait partie du processus de construction ou d'un outil personnalisé.Est-il possible de générer automatiquement mon Linq2Sql DBML via un script?

Un simple bouton "rafraîchir du schéma" serait bien aussi, mais de tout ce que je peux dire, il n'y a rien de tel. Actuellement, la seule façon dont je dois mettre à jour mon modèle est de supprimer les tables et les procs qui ont été modifiés et de les faire glisser à nouveau depuis l'explorateur du serveur.

Peut-être qu'il me manque quelque chose?

Répondre

4

Je suppose que vous pouvez utiliser l'outil de commande SQLMetal

EDIT par OP: Je fini par écrire un fichier de commandes à la caisse le code, générer les classes avec cela, puis valider le code. Ensuite, j'ai créé un déclencheur de niveau de changement de schéma de base de données pour exécuter ce fichier batch à chaque fois que le schéma a changé. Alors maintenant, quand le schéma change, les classes Linq sont créées, archivées, puis CCNet crée la DLL et la distribue. sweet ......

0

Si l'argent n'est pas un objet, votre meilleur pari est d'obtenir l'édition de modélisation de données du système d'équipe Visual Studio 2008, créer un projet de base de données et l'utiliser pour maintenir la base de données, le modèle de données et le modèle d'entité. Ce n'est pas un travail de zéro pour garder la base de données et le modèle d'entité synchronisés, mais en utilisant l'outil de comparaison de schéma, ce n'est pas loin (et ça fonctionne vraiment pour vous). À mon humble avis, la modélisation des données et le design roundtripping justifient amplement le coût élevé de l'achat de l'édition d'équipe de Visual Studio 2008 par rapport à l'édition professionnelle.

0

SQLMetal

http://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx

L'outil de ligne de commande SqlMetal génère du code et de la cartographie pour le composant LINQ to SQL du .NET Framework. SqlMetal peut effectuer plusieurs actions différentes qui sont les suivantes:

A partir d'une base de données, générer du code source et des attributs mappage ou un fichier de mappage .

A partir d'une base de données, générez un fichier de langage de balisage de base de données intermédiaire (.dbml) pour la personnalisation.

A partir d'un fichier .dbml, générez des attributs de code et de mappage ou un fichier de mappage .

Cet outil est automatiquement installé avec Visual Studio.

SQLMetalPlus

Un projet où le .dbml peut être généré automatiquement dans Visual Studio avec un bouton de rafraîchissement.

http://www.codeproject.com/Articles/37198/SqlMetalPlus-A-VS-Add-in-to-Manage-Custom-Changes

SQLMetalPlus fourchus sur Github

Comprend les installateurs préconçus.

https://github.com/thedemz/dotnet-sqlmetal-plus

Questions connexes