2010-04-23 6 views
2

Lorsque j'ajoute des procédures stockées à un linq datacontext, par défaut, Visual Studio préfixe la procédure stockée avec le schéma sql dans lequel il se trouve. Est-il possible d'arrêter cela? Dans notre environnement, les procédures stockées peuvent être déplacées vers d'autres schémas au fil du temps, et nous allons par défaut le schéma basé sur l'utilisateur sql utilisé pour se connecter. Dois-je le faire manuellement ou puis-je désactiver les préfixes du schéma?Supprimer le schéma de linq datacontexts (dbml)

Répondre

1

Il ne semble pas y avoir moyen de supprimer le schéma des procédures stockées mappées LINQ-to-SQL à l'aide du concepteur. Tous les procs sont mappés y compris leur nom de schéma, ce qui (pour être juste) est probablement une bonne chose pour la plupart des applications. Et comme pour la plupart des choses LINQ-to-SQL, changez votre base de données à vos risques et périls. Trop de modifications de base de données requises LINQ-to-SQL dbml met à jour les reconstructions &.

En creusant plus profondément, le nom du schéma est stocké dans le fichier XML de sauvegarde dbml et est ensuite inclus dans le fichier designer.cs généré qui contient les fonctions/méthodes qui sont appelées.

// dbml 
<Function Name="dbo.MyProc" Method="MyProc"> 

// designer.cs 
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.MyProc")] 
public int MyProc() 

Si vous modifiez manuellement le fichier XML dbml pour supprimer le schéma & Enregistrer dans Visual Studio, le code sera régénérés comme ceci:

// changed dbml - removed the dbo schema 
<Function Name="MyProc" Method="MyProc"> 

// the resultant generated code in designer.cs 
[global::System.Data.Linq.Mapping.FunctionAttribute()] 
public int MyProc() 

Ce qui a fonctionné pour mon compte, vous connecter avec dbo en tant que schéma par défaut. Je vais laisser les tests à vous.

Cela peut être une solution réalisable - le concepteur visuel fonctionne toujours comme ceci, d'autres éléments peuvent être ajoutés, etc. sans casser la fonction sans schéma, et la fonction elle-même ne provoque pas le concepteur à se plaindre. Bonne chance!

Questions connexes