2009-09-17 7 views
4

J'essaie de comprendre comment faire en sorte que les classes LINQ to SQL générées soient marquées privées plutôt que publiques, afin qu'elles ne soient pas visibles en dehors de l'assembly. Il ne semble pas y avoir un moyen de le faire dans le concepteur Visual Studio O/R ou l'outil SqlMetal, sauf si quelque chose me manque. Y a-t-il un moyen de faire cela?Comment générer des classes LINQ to SQL privées?

Je demande parce que j'utilise LINQ to SQL en interne en tant que couche d'accès aux données dans un assembly de logique métier. J'expose aux clients un ensemble distinct de classes d'entités personnalisées et je ne veux pas que les classes LINQ to SQL soient exposées.

Répondre

6

Il est possible, dans le concepteur Visual Studio sélectionnez la classe et dans les propriétés que vous pouvez modifier Accès- interne.

alt text http://img410.imageshack.us/img410/970/l2svs2008access.png

Les mêmes principes sont valables pour la DataContext lui-même (il suffit de cliquer dans la « zone blanche » du concepteur) et changer sous Propriétés.

+0

Super, j'ai raté ça. En outre, il semble que je puisse faire un CTRL-A pour sélectionner toutes les classes et ensuite définir la propriété Access sur tous à la fois (sinon cette solution n'aurait pas été pratique en raison du nombre de classes). – DSO

+0

Ceci expose toujours la classe de contexte de données générée. Je vais attendre un peu et voir si quelqu'un a une approche encore meilleure qui rend tout privé ... alors je vais accepter la meilleure réponse. – DSO

+0

Remarque! J'ai ajouté "Les mêmes principes s'appliquent au DataContext lui-même (il suffit de cliquer dans la" zone blanche "du concepteur) et de changer sous Propriétés" – veggerby