Mit der Version von EF Core 2.1 ist die Erweiterung UseLazyLoadingProxies für das Nachladen von referenzierten Datensätzen hinzugekommen.
Lazy Loading - docs.microsoft.com
Im Beispiel Dokumentation wird sowohl im Hauptdatensatz (Blog) als auch im Detaildatensatz (Post) eine virtuelle Navigation eingefügt. Dadurch entstehen Zyklen. In der Dokumentation ist die Einstellung erläutert, um beim serialisieren Zyklen zu ignorieren. Da ich diese Einstellung nicht vornehmen möchte, verzichte ich in den Detaildatensätzen auf die virtuelle Navigation zum Hauptdatensatz. Es gibt viele einfache Möglichkeiten einen übergeordneten Datensatz zu ermitteln.
Im Model Topic ist die Namensgebungen für den Referenze-Key anders, als es von EF erwartet wird. Da der Hauptschlüssel topic_rid lautet, sucht EF auch nach einer Property mit diesem Namen in der virtuellen Navigation. Der ist dort nicht vorhanden. Daher muss der Name dieser Property angegeben werden: [ForeignKey("topicpoint_fkey_topic")]
Durch die Vereinfachung wird der Code übersichtlicher und dies vermindert Fehler.