Betrachten Sie dieses vereinfachte Modell:
public class Field
{
public string Name { get; set; }
public MultilingualString Label { get; set; }
public MultilingualString Placeholder { get; set; }
}
public class MultilingualString
{
public string DefaultText { get; set; }
public IList<Globalization> Globalizations { get; set; }
}
public class Globalization
{
public string Text { get; set; }
public Language Language { get; set; }
}
public class Language
{
public string Name { get; set; }
public string CultureString { get; set; }
}
Mit meinem Kontext versuche ich, alle meine Felder zu erhalten und ihren Label und Platzhalter zusammen mit den Globalisierungen und der Sprache (die ganze Sache) mit dem folgenden Befehl einzufügen:
var field = context.Fields
.Include(x => x.Label.Globalizations)
.ThenInclude(x => x.Language)
.Include(x => x.Placeholder.Globalizations)
.ThenInclude(x => x.Language)
.ToList();
Ich bekomme folgende Ausnahme ausgelöst:
System.InvalidOperationException Ungültiger Leseversuch, wenn keine Daten vorhanden sind.
Wenn ich jedoch nur das erste include / theninclude verwende, bekomme ich die erwarteten Ergebnisse.
Was gibt? Ist das ein bekannter Fehler, oder habe ich die Include / ThenInclude-Syntax falsch verstanden?
Dies verwendet ef7 beta4 mit VS2015 RC
Dies ist ein Fehler in EF 7. Sollte mit aspnet / EntityFramework # 2474 behoben werden , die nicht in der öffentlichen EF-Build bis Beta 6 sein wird. Natürlich können Sie auch versuchen, nächtliche Builds