2010-09-17 17 views
1

Supposons que j'ai 2 tables:Pouvez-vous préciser le nom de la propriété d'un objet étranger dans LINQ

[Utilisateur]
- UserID
- Nom d'utilisateur

[Tâche]
- TaskID
- TaskName
- TaskCreatedByUserID
- TaskAssignedToUserID

Dans la table [Task], les deux champs *** UserID sont des clés étrangères à la table [User]. Ainsi, lorsque j'utilise le concepteur pour créer mes modèles LINQ, j'ai accès à 2 objets [User] étrangers avec les noms de propriété: "User" et "User1". Je voudrais leur donner des noms plus précis et plus significatifs comme "TaskCreatedByUser" et "TaskAssignedToUser". Je pourrais, bien sûr, aller dans le fichier dbml.designer.cs et les changer, mais ensuite ils seront simplement écrasés la prochaine fois que je dois modifier la base de données. Une autre option consiste à créer une propriété redondante, mais cela semble stupide. Existe-t-il un moyen de spécifier manuellement les noms de propriété d'objet étranger dans le concepteur (ou autrement) d'une manière qui est persistante?

+0

Dans quelle langue travaillez-vous? C#? – Gage

+0

L'existence de fichiers .cs signifierait nécessairement que j'utilise C#, mais la question est assez générique pour que la langue utilisée ne soit pas importante. –

Répondre

1

Allez dans le concepteur, faites un clic droit sur la ligne représentant l'association entre les classes et sélectionnez les propriétés. Vous pouvez modifier le nom de la propriété child-collection sur le parent et le nom de la propriété parent sur l'enfant.

Les modifications seront enregistrées dans l'élément Association dans le dbml.

+0

Merci beaucoup David. Pour tous ceux qui ont besoin de faire cela, voici un ensemble d'instructions plus précises: Faites un clic droit sur la ligne fléchée représentant la corrélation enfant/parent. Dans le volet des propriétés en bas à droite, vous verrez "Propriété enfant" et "Propriété parent". En fonction de celui que vous souhaitez renommer, appuyez sur le signe + à côté et changez le sous-champ "Nom". –