Comment mettre à jour un fichier Linq to SQL .dbml ?
J'ai essayé 1a et 1c sans 1b et j'obtenais des erreurs 'Specified cast is not valid' en effectuant une simple sélection sur une vue. L'inclusion de 1b a réglé le problème pour moi.
Comment mettre à jour un fichier Linq to SQL .dbml ?
Il y a trois façons de garder le modèle en synchronisation.
Supprimez les tables modifiées du concepteur, puis faites-les glisser à nouveau sur la surface du concepteur à partir de l'explorateur de bases de données. J'ai constaté que, pour que cela fonctionne de manière fiable, vous devez :
a. Rafraîchissez le schéma de la base de données dans l'explorateur de bases de données (clic droit, rafraîchir).
b. Sauvegarder le concepteur après avoir supprimé les tables
c. Enregistrez à nouveau après avoir fait glisser les tableaux en arrière.
Note Cependant, si vous avez modifié des propriétés (par exemple, en désactivant la propriété enfant d'une association), ces modifications seront évidemment perdues et vous devrez les refaire.
Utilisez SQLMetal pour régénérer le schéma de votre base de données. J'ai vu un certain nombre de billets de blog qui montrent comment script ceci .
Effectuez des modifications directement dans le volet des propriétés de la DBML. Cela fonctionne pour les changements simples, comme autoriser les valeurs nulles dans un champ.
Le concepteur DBML n'est pas installé par défaut dans Visual Studio 2015, 2017 ou 2019. Vous devrez fermer VS, lancer le programme d'installation de VS et modifier votre installation. Le site Outils LINQ to SQL est la fonction que vous devez installer. Pour VS 2017/2019, vous pouvez la trouver sous Composants individuels > Outils de code .
J'ai essayé 1a et 1c sans 1b et j'obtenais des erreurs 'Specified cast is not valid' en effectuant une simple sélection sur une vue. L'inclusion de 1b a réglé le problème pour moi.
Le soutien du VS a été demandé le connect.microsoft.com/VisualStudio/feedback/details/260723/ mais MS ne veut pas réparer.
J'ai essayé la première méthode et ça a marché. Je suppose que cela fonctionnera pour une petite DB.
http://www.huagati.com/dbmltools/
Huagati DBML/EDMX Tools s'intègre à Visual Studio et ajoute de nouvelles fonctionnalités utiles aux concepteurs intégrés pour Linq-to-SQL et Entity Framework dans Visual Studio. Parmi les fonctionnalités ajoutées à Visual Studio par l'add-in figurent :
- synchroniser vos modèles Linq-to-SQL avec la base de données sous-jacente et toute modification du schéma de la base de données
- ...et plus encore...
Vous pouvez également consulter le PLINQO Ensemble de modèles de génération de code, basé sur CodeSmith, qui vous permet de faire beaucoup de choses intéressantes pour et avec Linq-to-SQL :
Consultez le site de PLINQO à l'adresse suivante http://www.plinqo.com et regardez les vidéos d'introduction.
Le deuxième outil que je connais est le Outils Huagati DBML/EDMX qui permettent la mise à jour des fichiers de mapping DBML (Linq-to-SQL) et EDMX (Entity Framework), et plus encore (comme les conventions de nommage, etc.).
Marc
Ayant juste arraché CodeSmith / PLINQO je conseille fortement contre en adoptant cette approche. Je vous accorde que cette réponse date de plus de 4 ans...
@Yuck : à ce stade, je déconseille fortement l'utilisation de Linq-to-SQL - utilisez plutôt Entity Framework, un bien meilleur choix !
Nous utilisons un modèle T4 personnalisé qui interroge dynamiquement le modèle information_schema pour chaque table dans tous nos fichiers .DBML, puis écrase certaines parties du fichier .DBML avec des informations de schéma récentes provenant de la base de données. I hautement Je vous recommande de mettre en œuvre une solution de ce type. Elle m'a fait gagner beaucoup de temps et, contrairement à la suppression et au réajustement de vos tables dans votre modèle, vous conservez vos associations. Avec cette solution, vous obtiendrez des erreurs de compilation lorsque votre schéma sera modifié. Vous devez cependant vous assurer que vous utilisez un système de contrôle de version, car le diffing est très pratique. Il s'agit d'une excellente solution qui fonctionne bien si vous développez avec une approche basée sur le schéma de la base de données. Bien sûr, je ne peux pas partager le code de mon entreprise, vous devez donc vous débrouiller seul pour l'écrire. Mais si vous connaissez un peu de Linq-to-XML et pouvez aller à l'école sur ce projet vous pouvez arriver là où vous voulez être.
http://visualstudiogallery.msdn.microsoft.com/6e941187-6ae0-4ad3-994c-77d833c043c0
Un simple outil gratuit qui fait le travail pour moi...
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.