93 votes

ADO.NET Entity Framework: Assistant de mise à Jour ne sera pas ajouter des tables

J'ai ajouté une nouvelle ADO.Net Modèle de Données d'Entité dans mon projet et utilisé l' Assistant de mise à Jour pour ajouter des tables dans le modèle. Cinq des tables sélectionnées ont été ajoutés à la conception de la surface. Deux autres tables ne sera pas ajouter. Je les sélectionner dans l'assistant et cliquez sur Terminer, et pourtant ils n'ont jamais apparaître sur la surface de dessin.

Est-ce un bug ou il y a certaines situations où une table ne peut pas être ajouté au modèle (par conception)?


Mise à JOUR: Le XML (*.edmx) révèle le problème.

<!--Errors Found During Generation:
warning 6013: The table/view 'FooBar.dbo.Roles' does not 
have a primary key defined and no valid primary key could be inferred. 
This table/view has been excluded. To use the entity you will need to 
review your schema, add the correct keys and uncomment it.-->
<!--<EntityType Name="Roles">
    <Property Name="role_id" Type="decimal" />
    <Property Name="role_desc" Type="nvarchar" MaxLength="30" />
</EntityType>-->

Merci Craig pour votre réponse.

46voto

Craig Stuntz Points 95965

La surface de dessin est différent du modèle d'entité. Il est possible d'avoir une table dans la cartographie dans votre EDMX qui n'apparaît pas sur l'aire de conception. Afficher le fichier XML pour voir si c'est le cas. Dans ce cas, l'Assistant de mise à Jour ne vous permettra pas de l'ajouter à nouveau les tableaux, car ils sont déjà une partie de l'entité de modèle. Ainsi, en règle générale, l'Assistant de mise à Jour en sait plus au sujet de votre modèle d'entité que sur la surface de dessin, en soi.

Je ne pense pas que c'est exactement la situation que vous êtes dans, mais ce devrait vous donner une idée générale de la solution: aller dans le XML et trouver les références pour les tableaux en question.

44voto

Parvinder Points 81

Définir les Clés Primaires à toutes les tables ou seulement une décoché la case "Autoriser les valeurs null" n'importe quelle colonne de chaque tableau. Il fonctionne pour moi :)

14voto

Pratap Points 77

1.Changement de la structure de la Table et ajouter une Colonne Principale. Mise à jour le Modèle.

2.Modifier la .Fichier EDMX dans l'Éditeur XML et essayez d'ajouter une Nouvelle Colonne dans la balise spécifique pour ce tableau. (NE FONCTIONNE PAS)

3.Au lieu de créer une nouvelle Colonne Principale de Sortir de table, je vais faire une clé composite en impliquant toutes les colonnes existantes.(TRAVAILLÉ)

Entity Framework: Ajout de DataTable avec aucune Clé Primaire de l'Entité de Modèle.

1voto

gyane Points 18

Ce problème a été résolu dans la dernière version(environnement: VS 2012 , .net framework 4.5). Simple, ouvrez le .fichier edmx et ajouter les tables requises / / procédures stockées points de vue. De la table/vue qui n'a pas de clé primaire sera créé en lecture seule table/vue.

De la table/vue "TABLE_NAME" n'a pas de clé primaire. La clé a été déduite et la définition a été créé comme un tableau en lecture seule/vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X