J'utilise EF 4.0 et WPF et moi avions un problème similaire, et .... a trouvé le problème que j'ai résolu t (au moins pour moi) d'une manière très simple.
Parce que, comme vous, je pensais que ce doit être simple à mettre à jour un champ dans une table (dans votre cas: Contactez-) qui est référencé par un foreignkey d'une autre table (dans votre cas: ContactType).
Cependant, le message d'erreur: ".... fait partie des informations clés de l'objet et ne peut pas être modifié." n'apparaît que lorsque vous essayez de mettre à jour une clé primaire (ce qui n'était pas du tout mon intention).
Had regarder de plus près le code XML de mon EntityModel et ils ont trouvé:
<EntityType Name="Contact">
<Key>
<PropertyRef Name="ID" />
<PropertyRef Name="contactTypeID" /> <!-- This second line caused my problem -->
</Key>
<Property Name="ID" Type="int" Nullable="false" />
...
...
</EntityType>
Pour une raison quelconque (peut-être que je fait une erreur stupide au sein de ma base de données), lorsque Visual Studio autogénéré pour moi la DataModel de ma base de données, at-il ajouté dans ce tableau très (de contact), où je voulais mettre à jour le champ (ContactTypeID
) une seconde PropertyRef
(deuxième ligne).
Je viens de supprimer cette deuxième PropertyRef
:
<PropertyRef Name="contactTypeID" />
à la fois, le modèle de magasin et le modèle conceptuel et .... question a été résolue :-)
Par conséquent , reste comme:
<EntityType Name="Contact">
<Key>
<PropertyRef Name="ID" />
</Key>
<Property Name="ID" Type="int" Nullable="false" />
...
...
</EntityType>
Les mises à jour et les insertions fonctionnent maintenant comme un bébé .... :-)
Par conséquent, bonne idée de vérifier le code XML du modèle de données pour vérifier que seul votre PK est répertorié comme PropertyRef
. Travaillé pour moi ... :-)
double possible de [la propriété « text » fait partie des informations clés de l'objet et ne peut être modifié] (https://stackoverflow.com/questions/4619564/the-property-text-is-part-of-the-objects-key-information-and-can-be-modifi) –