Entity Framework:Assegnare entità di proprietà di un altro ente
Domanda
Ho queste entità (questa è solo un'astrazione che ho creato per questo post):
- Lingua
- Distretto
- Descrizione
Questi sono i riferimenti tra di loro:
- Distretto * - 1 Lingua
- Descrizione * - 1 Lingua
- Distretto 1 - 1 Descrizione
Se io fetch come questo:
var myFetch = from c in context.Districts
where c.Id = 10
select new { DistrictId = c.Id, Lang = c.Language };
e dopo di che, cerco di assegnare al Descrizione come questa:
Description desc = Description.CreateDescription(0, "My description");
desc.DistrictReference.EntityKey = new EntityKey("MyEntities.Descriptions", "DistrictId", myFetch.DistrictId);
desc.Language = myFetch.Lang; //throws error
L'errore restituito è:
Sistema.InvalidOperationException:Il relazione che non può essere definito il nome EntitySet 'MyEntities.Descrizioni' è non valido per il ruolo di 'Quartiere' in associazione a nome 'MyEntities.District_Description'.
Che cosa sto facendo di sbagliato?
Soluzione
se myFetch
dovesse essere un'istanza della classe District
si potrebbe fare a livello di codice:
desc.DistrictReference.EntityKey = new EntityKey(
String.Format(
"{0}.{1}",
myFetch.EntityKey.EntityContainerName,
myFetch.EntityKey.EntitySetName),
"DistrictId",
myFetch.DistrictId);
Altri suggerimenti
Proprio quello che il messaggio dice:Si è specificata l'entità sbagliata nome del set.
- Apri il tuo EDMX.
- Aprire il Modello di finestra del Browser.
- Trova il Quartiere entità nel Modello Browser
- Tasto destro del mouse, scegliere "Proprietà"
- N.b. il corretto Set di Entità nome
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow