Meilleur moyen pour mettre à jour les classes LINQ to SQL après le changement de schéma de base de données
Je suis en utilisant LINQ to SQL classes dans un projet où la conception de base de données est encore un peu dans le flux.
Est-il un moyen facile de synchroniser les classes avec le schéma, ou dois-je la mettre à jour manuellement les classes, si un tableau des modifications de conception?
- double possible de Comment mettre à jour Linq to SQL fichier dbml?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser SQLMetal.exe pour générer votre dbml et ou cs/vb fichier. Utiliser un pré-script de construction de la démarrer et de la cible le répertoire où votre datacontext projet appartient.
Je n'ai pas essayé moi-même, mais Huagati DBML/EDMX Outils est recommandé par d'autres personnes.
Voici une solution facile sans logiciel supplémentaire, qui fonctionne pour de simples changements de champs ajoutés, quelques tables, etc).
Instructions:
right-click ->
)copy
insert
(les supprimer champs modifiés en premier)Je sais que c'est un peu évident, mais d'une certaine manière non intuitive, et il m'a beaucoup aidé, car tous les attributs et les types seront copiés, et tous les liens restent intactes. Espérons que cela aide.
Quand utiliser:
Bien sûr, il est - comme on dit - pour de petits changements, mais sûrement mieux que remplacer manuellement les tables avec de nombreux liens, ou lorsque vous ne voulez pas que votre ensemble de la structure de base de données générée par SQLMetal. Par exemple, lorsque vous avez une grande quantité de tables (ex: SAP), ou lors de l'utilisation de la croix-des tables liées de différentes bases de données.
DamienG a écrit quelques les modèles de t4 qui peut remplacer une partie de ce que VS génère pour vous. Ceux-ci peuvent être relancé à chaque fois que vous le souhaitez via un outil en ligne de commande.
T4 modèles ont l'avantage d'être modifiable. Cela vous permet de modifier ce qui est généré pour vous le contenu de coeurs.
Je pense que Jeff s'est plaint récemment sur ce sujet. Une technique courante consiste à faire glisser tous les objets dans le concepteur de nouveau...
J'espère que quelqu'un d'autre carillons avec une meilleure approche!
J'ai écrit un outil pour faire des scripts de modification de Dbml scripts de voir http://code.google.com/p/linqtodbmlrunner/ et mon blog http://www.adverseconditionals.com
Comment sur la modification des Propriétés de l'entité ou de la table dans le DataContext de la conception de la surface au sein de Visual Studio?
Par exemple si j'ai ajouté une colonne à une table SQL Server:
L'auto généré des classes de modèle doit tenir compte de la nouvelle colonne a été ajoutée.