J'ai deux tables qui ont un 1 à 1 .. * relation (ce qui signifie qu'il y aura toujours un enregistrement dans la table « Status » pour un ID spécifiqueAPI Courant et la construction d'un 1:. * Relation
|Area| | Status |
------ -------------------
|[Key] ID | ----> |[Key] ID |
| Name| |[Key] Start Date |
| End Date |
J'ai les relations construites dans mon dataLayer comme suit.
zone
HasMany(s => s.Statuses)
.WithRequired()
.HasForeignKey(s => s.Id);
Statut
HasRequired(a => a.Area)
.WithMany(s => s.Statuses)
.HasForeignKey(s => s.Id);
J'ai une méthode générique 'AllIncluding' que j'utilise pour rassembler les données associées. Dans le débogueur, je peux voir la requête et copier/coller dans ma base de données Oracle et l'exécuter. Cela fonctionne comme je m'y attends et renvoie le nombre de lignes approprié.
Le problème est qu'après l'exécution dans le débogueur je parcourt le jeu d'enregistrements et trouve un ensemble de données entièrement différent (un ensemble réduit). Je pense que c'est parce que j'ai les clés définies comme décrit dans le diagramme. Je peux créer des erreurs concernant ... the upper bound of the multiplicity of the Dependent Role must be '1'
et également modifier le jeu d'enregistrements renvoyé dans le débogueur en modifiant simplement la clé sur la table d'état. Cela semble indiquer que la relation d'enregistrement tente de supprimer des doublons dans la table d'état pour créer la jointure? J'ai essayé de recréer ceci dans Oracle en faisant un group by trunc(start_date)
ou d'autres requêtes semblables mais ne peux pas frapper le résultat exact des rangées exactes.
Il a seulement confirmé ma suspicion que le mappage et la relation définis dans l'API Fluent doivent être faux, mais je ne suis pas sûr de savoir comment le représenter correctement.
Finalement, j'aimerais simplement créer une relation 1 -> 1 .. * dans l'API Fluent.
Merci!
Il serait utile de voir les définitions de classe. Il semble que 'Status' est en réalité une classe de jonction entre' Area' et une table de statut qui stocke les statuts 'réels', sinon une relation many-to-many semble plus appropriée. Mais il est vraiment difficile de reconstituer ce qui se passe à partir de votre description. –