2009-12-16 4 views
1

Lorsque je modifie la structure de la table dans Sql Server, ne sera-t-elle pas automatiquement reflétée dans le concepteur de mise en page "Dbml" Chaque fois que je dois supprimer les tableaux dans "dbml" layout designer et faites glisser la table depuis le serveur sqlLinq to Sql Mapping

Répondre

0

Si j'étais vous, je commencerais à utiliser SqlMetal SqlMetal est une application de ligne de commande utilisée pour générer des LINQ DataContexts, qui peut générer des dbml ou simplement un ensemble de classes à utiliser dans votre projet (il est assez personnalisable) Créez donc un fichier de commandes qui appelle SqlMetal et lancez-le chaque fois que vous modifiez la base de données et que votre projet sera toujours à jour avec la base de données

Si vous ne voulez pas courir le fichier batch chaque fois que vous mettez à jour la base de données, vous pouvez l'exécuter à chaque fois que vous créez votre application avec un pre-build step.

2

Ce serait bien si vous aviez la possibilité de "rafraîchir" en conservant toutes les personnalisations locales que vous avez faites, mais le concepteur ne semble pas fonctionner de cette façon. Vous pouvez toutefois simplement effectuer les mêmes mises à jour (à la main) dans le concepteur que vous avez créé dans la table en ajoutant/supprimant des colonnes de la classe générée dans le concepteur.

0

Il y a un certain nombre de façons de garder le modèle L2S en phase avec la base de données sous-jacente:

1) Supprimer la table (s)/classes concernées de la surface du concepteur et faites-les glisser en arrière de l' « explorateur de serveur 'chose.

... ou ...

2) Mettre à jour les classes impliquées manuellement dans le concepteur L2S.

... ou ...

3) Utiliser des outils tiers avec la capacité de mise à jour (un tel outil est mon complément: http://www.huagati.com/dbmltools/, également mentionné dans le décembre 2009 du magazine MSDN http://msdn.microsoft.com/en-us/magazine/ee819138.aspx)

... ou ...

4) Régénérez le fichier DBML entier en utilisant le concepteur ou sqlmetal.exe.