2008-12-02 4 views
16

Dans Visual Studio 2008, lorsque je fais glisser une table de base de données dans mon écran dbml, toutes les tables qui se terminent par la lettre s sont automatiquement supprimées de l'objet dbml. Est-il possible de désactiver cela?Linq to SQL: comment arrêter le nom d'objet généré automatiquement d'être renommé?

De plus, la collection de lignes est également ajoutée au nom de la propriété de collection. Y a-t-il un moyen de changer cela aussi?

Merci

+0

travaillé un traitement, merci encore –

Répondre

36

Vous devez désactiver les pluralize les noms de table pour le concepteur LINQ to SQL.

Pour ce faire, accédez à Outils -> Options -> Outils de base de données -> O/R et changer le pluralisation des noms à faux.

Ensuite, vous aurez besoin de recompiler votre projet et il devrait répondre à la dénomination

+5

Est-il possible de le désactiver pour une seule entité seulement? – awaisj

+0

J'aime cette réponse. –

+0

awaisj, voir ma réponse. –

0

Dans un premier scénario de code, vous pouvez gérer certains problèmes qui apparaissent comme celui-ci à un niveau plus granulaire en spécifiant simplement le nom de la tableau de l'entité avec l'attribut de la table:

[Table("QTPhotos")] 
    public class QTPhoto 

ce que je trouve était, à l'origine, nous avions un nom simple de l'entité « photo », mais cela a été en conflit avec certaines choses (avec un certain nombre de nos noms d'entités), nous avons donc commencé à les qualifier ("QT" comme un exemple), et soudainement ce problème est apparu. Donc je parie que c'est parce que "Photo" est un mot reconnu se terminant par "o" qui ne se pluralise pas en "..oes" (comme dans Potat oes), mais "QTPhoto" ne l'était pas, signifiant qu'il essayait de trouver une table nommée "QTPhotoes".

Il suffit de régler le nom de la table pour le corriger.