J'utilise SqlMetal pour généraliser ma classe DataContext.dbml pour mon application ASP.net en utilisant LinqToSql. Lorsque j'ai initialement créé le fichier DataContext.dbml, Visual Studio l'a utilisé pour créer un fichier DataContext.designer.cs associé. Ce fichier de concepteur contient la classe DataContext en C# utilisée dans toute l'application (et dérivée du code XML dans le fichier dbml) et est essentielle pour combler l'écart entre la sortie de SqlMetal et l'utilisation de DataContext avec LinqToSql.Génération automatique d'un fichier de concepteur DataContext lors de l'utilisation de SqlMetal et Visual Studio
Cependant, lorsque je modifie la base de données et recrée le fichier dbml, le fichier du concepteur n'est jamais régénéré sur mon site Web. Au lieu de cela, l'ancien fichier du concepteur est conservé (et par conséquent, aucun des changements apportés au fichier DBML n'est accessible via la classe LinqToSql DataContext).
Le seul processus que j'ai pu utiliser jusqu'à présent pour régénérer le fichier de concepteur est
- Aller à l'Explorateur Windows et supprimer à la fois le dbml et Designer.cs fichiers
- Aller à Visual Studio et cliquez sur Actualiser dans l'Explorateur de solutions. Les fichiers dbml et designer.cs disparaissent maintenant du projet.
- Régénérer le fichier dbml à l'aide de SqlMetal
- Accédez à Visual Studio et cliquez sur Actualiser dans l'Explorateur de solutions. Le fichier designer.cs est maintenant recréé.
Il semble que Visual Studio génère uniquement le fichier designer.cs lorsqu'un nouveau fichier dbml est détecté et qu'il ne possède pas encore de fichier designer.cs. Ce processus est assez peu pratique, car il implique plusieurs étapes manuelles et gâche les choses avec le contrôle de la source.
Est-ce que quelqu'un sait comment je peux obtenir le fichier designer.cs régénéré automatiquement sans avoir à suivre le processus manuel de suppression/actualisation/régénération/suppression décrit ci-dessus?
Merci Doug, ce que je cherchais. Il a continué à créer un fichier de concepteur en double, et il m'énervait sans fin. Cela a résolu mon problème. – AceCorban