Bonjour à tous,

J'essaie de faire un "truc simple" avec EF et je bloque bêtement.

Dans ma base SQL Server, j'ai deux tables reliées par une relation 1-0..1:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TableA            TableB
ID         1-0..1 ID_TableA
Nom               Details
boolFiltre        ...
...
Bien sûr, ID et ID_TableA sont des clés primaires.

Dans mon modèle EF, j'ai fait hériter ma classe TableB de ma classe TableA, et ça fonctionne bien.

Maintenant, j'ai une procédure dans ma base qui me permet de faire un SELECT * FROM TableA WHERE (...), avec plein de conditions. L'idée était: "si ligne correspondante dans TableB existe, alors True, sinon prendre la valeur boolFiltre".
Cette requête me donne bien les résultats que j'attends.


Le problème est lors du mappage de cette fonction dans mon modèle EF: j'ai mappé cette procédure en une fonction qui me renvoie des classes "TableA" (la classe mère).
Et lors de l'appel de cette fonction, j'ai une erreur:
Tous les objets de l'EntitySet « DataContext.TableASet » doivent avoir des clés primaires uniques. Toutefois, une instance de type « Core.TableA » et une instance de type « Core.TableB » ont la même valeur de clé primaire, « EntitySet=TableASet;ID=1f8de4d0-ede6-43f0-9d14-2e9549618d51 ».
Quelqu'un sait comment éviter ça ?
Merci