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?

È stato utile?

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.

  1. Apri il tuo EDMX.
  2. Aprire il Modello di finestra del Browser.
  3. Trova il Quartiere entità nel Modello Browser
  4. Tasto destro del mouse, scegliere "Proprietà"
  5. N.b. il corretto Set di Entità nome
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top