Entity framework - "Problème dans les fragments de mappage" - erreur. Aidez-moi à comprendre les explications de cette erreur

entity-framework

Question

Erreur 3007: Problème de mappage des fragments commençant aux lignes 186, 205: La ou les colonnes de clé non principale [WheelID] sont mappées dans les deux fragments vers des propriétés latérales conceptuelles différentes - une incohérence des données est possible car les propriétés latérales conceptuelles correspondantes peuvent être modifié indépendamment.

J'ai trouvé plusieurs endroits sur le Web décrivant cette erreur, mais je ne les comprends tout simplement pas. (smiley confus va ici)

Un
Deux
Trois
Quatre

Il y a quelque chose d'assez fondamental ici, je dois manquer. Pouvez-vous l'expliquer pour que je le comprenne? Peut-être en utilisant mon exemple réel ci-dessous?

texte alternatif http://i39.tinypic.com/2hppnoo.jpg

Clé étrangère 1: N Wheels.Id -> Slices.WheelId

Je les ajoute au framework entity et WheelId n'est pas visible dans l'entité Slices.

texte alt http://i43.tinypic.com/287hq87.jpg

Solution de contournement (supprimer la relation de la base de données avant d’ajouter des tables à EF - puis de la recréer et de la mettre à jour), j’ai réussi à faire en sorte que le WheelId reste dans les Slices, mais j’obtiens l’erreur mentionnée en haut.

Réponse acceptée

Slices.WheelId étant un FK, vous ne pouvez pas l'exposer dans votre modèle client, point à la ligne. Il existe des moyens d'obtenir la valeur, cependant.

var wheelId = someSlice.Wheels.ID;

Mise à jour Dans EF 4, vous pouvez le faire en utilisant des associations FK au lieu d'associations indépendantes.


Réponse populaire

Essayez de supprimer la colonne de propriété étrangère de l'ensemble d'entités en utilisant un modèle de entité qui résoudra votre problème.

Par exemple

Nous avons deux tables, l'une est le client et l'autre, la commande . À l'aide de la conception du modèle d'entité, nous avons ajouté l'association entre les clients et les commandes lorsque nous faisons ce cadre d'entité Ado.net.

Comme Customer.Orders - Ici l'ordre est la liste Order.Customer

Un - beaucoup de relation.

Nous devons donc supprimer la propriété de avec le nom CustomerId [colonne de clé étrangère] du jeu d’entités Order .

Pour référence:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow