Entity Framework: Assigner entité à la propriété d'une autre entité
Question
Je ces entités (ce qui est juste une abstraction j'ai créé pour ce post):
- Langue
- District
- Description
Ce sont les références entre elles:
- District * - 1 Langue
- Description * - 1 Langue
- District 1 - 1 Description
Si j'aille chercher comme ceci:
var myFetch = from c in context.Districts
where c.Id = 10
select new { DistrictId = c.Id, Lang = c.Language };
et après cela, je tente de l'assigner à Description comme ceci:
Description desc = Description.CreateDescription(0, "My description");
desc.DistrictReference.EntityKey = new EntityKey("MyEntities.Descriptions", "DistrictId", myFetch.DistrictId);
desc.Language = myFetch.Lang; //throws error
L'erreur renvoyée est:
System.InvalidOperationException: La relation ne peut pas être définie car le nom EntitySet « MyEntities.Descriptions » est pas valable pour le rôle « district » Nom ensemble d'associations 'MyEntities.District_Description'.
Qu'est-ce que je fais mal?
La solution
si myFetch
devait être une instance de la classe District
, vous pouvez le faire par programme:
desc.DistrictReference.EntityKey = new EntityKey(
String.Format(
"{0}.{1}",
myFetch.EntityKey.EntityContainerName,
myFetch.EntityKey.EntitySetName),
"DistrictId",
myFetch.DistrictId);
Autres conseils
Tout ce que le message dit: Vous avez spécifié la mauvaise entité nom de l'ensemble
.- Ouvrez votre EDMX.
- Ouvrez la fenêtre du navigateur de modèle.
- Trouvez l'entité de district dans le navigateur du modèle
- clic droit, choisissez "Propriétés"
- Notez le nom du jeu correct Entité
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow