Frage

Ich habe diese Entitäten (dies ist nur eine Abstraktion ich für diesen Beitrag erstellt):

  • Sprache
  • Bezirk
  • Beschreibung:

Dies sind die Verweise zwischen ihnen:

  • Bezirk * - 1 Sprache
  • Beschreibung: * - 1 Sprache
  • Bezirk 1 - 1 Beschreibung:

Wenn ich so holen:

var myFetch = from c in context.Districts
              where c.Id = 10
              select new { DistrictId = c.Id, Lang = c.Language };

und danach versuche ich es auf Beschreibung: zuweisen wie folgt aus:

Description desc = Description.CreateDescription(0, "My description");
desc.DistrictReference.EntityKey = new EntityKey("MyEntities.Descriptions", "DistrictId", myFetch.DistrictId);
desc.Language = myFetch.Lang; //throws error

Der Fehler ausgelöst wird:

  

System.InvalidOperationException: Die   Beziehung nicht definiert werden kann, weil   der EntitySet Name   ‚MyEntities.Descriptions‘ ist   gilt nicht für die Rolle ‚Bezirk‘   in Verbindung gesetzt Name   'MyEntities.District_Description'.

Was mache ich falsch?

War es hilfreich?

Lösung

Wenn myFetch sind eine Instanz der Klasse sein District Sie es programmatisch tun könnten:

desc.DistrictReference.EntityKey = new EntityKey(  
  String.Format(  
    "{0}.{1}",   
    myFetch.EntityKey.EntityContainerName,   
    myFetch.EntityKey.EntitySetName),   
  "DistrictId", 
  myFetch.DistrictId);  

Andere Tipps

Genau das, was die Botschaft sagt: Sie haben die falsche Einheit Satzname angegeben

.
  1. Öffnen Sie die EDMX.
  2. Öffnen Sie das Modell Browser-Fenster.
  3. Finden Sie den Kreis Einheit im Modellbrowser
  4. Sie mit rechter Maustaste, wählen Sie "Eigenschaften"
  5. Achten Sie auf den richtigen Entity Set Namen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top