2010-06-29 6 views
2

J'ai besoin de définir l'attribut LINQ UpdateCheck des colonnes dans chaque tableau de la base de données db, y a-t-il un moyen rapide de définir l'attribut updatecheck de toutes les colonnes?Comment définir tous les attributs de colonne "UpdateCheck" rapidement pour toutes les tables?

+0

C'est ce que j'essaie de faire non plus. Le problème qui me force à cette opération est que je ne peux pas obtenir les propriétés mises à jour lors de l'utilisation de la méthode Entity.GetChangeSet(). Mais je pense que ce n'est pas une bonne idée): –

Répondre

2

Il n'y a pas cette fonctionnalité intégrée dans le concepteur L2S dans Visual Studio, mais vous pouvez:

a) Ajouter une colonne timestamp/rowversion à toutes les tables; la colonne timestamp sera ensuite utilisée pour les contrôles de concurrence au lieu de toutes les colonnes. (... si la raison pour laquelle vous voulez faire est de simplifier les déclarations de mise à jour de SQL ...)

... ou ...

b) ouvrir le fichier DBML dans un éditeur XML et faites une recherche/remplacement ou une autre mise à jour de masse.

... ou ...

c) essayer mon add-in pour L2S (vous pouvez le télécharger et obtenir une licence d'essai de www.huagati.com/dbmltools); l'une des commandes qu'il ajoute au concepteur L2S est une « mise à jour de masse » pour la propriété UpdateCheck:

alt text http://forum.huagati.com/upload/2/dbmlToolsMenu_v189.png

alt text http://forum.huagati.com/upload/2/concurrencyModeOptions.png

0

Il y a une façon, vous pouvez le faire dans le code. Si vous parcourez chacune des propriétés des tables et obtenez leur attribut ColumnAttributes, vous pouvez définir chacune de leurs propriétés UpdateCheck sur Jamais. Cela doit cependant être fait avant la source de mappage créée pour le DataContext.

Il est bon pour tester rapidement quelque chose, mais ce n'est probablement pas la meilleure idée pour mettre à jour le ColumnAttributes sur chacune de vos propriétés.

Questions connexes