2010-01-27 4 views
1

J'ai deux tables dans ma base de données - Catégorie et Département qui contiennent les mêmes colonnes - ID, Nom et Code.Erreur de code générée par le modèle de données LINQ - Le type 'DBContexts.Category' contient déjà une définition pour 'ID'

Je peux créer un nouveau modèle d'entité en utilisant le concepteur Visual Studio 2008 et ajouter le département et cela fonctionne bien - je peux interroger la base de données en utilisant LINQ, tout va bien.

Lorsque je mets à jour le modèle et ajoute la table Catégorie, le code généré renvoie les erreurs suivantes lorsque j'essaie de compiler.

The type 'DBContexts.Category' already contains a definition for 'ID' 
The type 'DBContexts.Category' already contains a definition for '_ID' 

The type 'DBContexts.Category' already contains a definition for 'Name' 
The type 'DBContexts.Category' already contains a definition for '_Name' 

A partial method may not have multiple defining declarations 

Je suppose que cela est quelque chose à voir avec le fait que Département et la catégorie ont des noms de colonnes identiques - mais il ne couture pas avoir un problème avec la colonne Code.

Des idées comment je peux résoudre ce problème? Je ne peux pas vraiment me tromper avec le code généré car tout changement sera supprimé si je mets à jour le modèle.

Vive

Répondre

8

Lorsque vous mettez à jour le fichier .dbml le fichier .designer.cs est également régénéré MAIS si ce fichier est pas accessible un nouveau fichier est généré et ajouté au projet. Puisque les classes dans les deux fichiers sont partielles mais ont les mêmes propriétés et les mêmes champs lors de la compilation, vous obtiendrez cette erreur.

Vous pouvez vérifier si vous avez un seul fichier généré par un concepteur pour votre contexte. Vous pouvez le faire en faisant un clic droit sur le nom de votre classe et en sélectionnant "Aller à la définition" - il affichera tous les fichiers contenant la définition de votre classe.

+0

Nice one! J'ai un deuxième contexte pour une base de données différente qui a également une table de catégorie avec l'identification et le nom - d'une manière ou d'une autre j'ai oublié ceci. Merci – Tom

Questions connexes