Cette chose me rend fou, et l'erreur n'a aucun sens pour moi:
Impossible de mettre à jour le EntitySet 'TableB' car il a un DefiningQuery et aucun élément n'existe dans l'élément pour prendre en charge l'opération en cours.
Mes tableaux sont mis comme ceci:
TableauA int idA (identité, clé primaire) ... TableauB int idA (FK pour TableA.idA) int val
TableB n'a pas de clé primaire définie dans le serveur SQL. Entity Framework a importé la table et l'association et défini les deux champs comme clé. Mais cela produira cette erreur lorsque j'essaierai de faire une insertion dans la table!
Qu'est-ce qui ne va pas??
Edit: Comme suggéré par Alex, la solution était la suivante:
- Faites un clic droit sur le fichier edmx, sélectionnez Ouvrir avec, éditeur XML
- Localisez l'entité dans l'élément edmx: StorageModels
- Supprimer complètement la DefiningQuery
- Renommez le magasin: Schema = "dbo" en Schema = "dbo" (sinon, le code générera une erreur indiquant que le nom n'est pas valide)
- Supprimer le magasin: propriété Name
J'ai laissé la clé telle quelle, car il m'était normal que les deux colonnes fassent partie de la clé.