Die meisten (wenn nicht alle) Entity Framework POCOs haben virtuelle Funktionen. Ich brauche diese Funktionen, um virtuell zu sein, damit die Entitäten faul geladen werden können.Wie vermeidet man den Aufruf der virtuellen Funktion im Konstruktor?
Wenn ich Accommodations
im Konstruktor initialisiere, werde ich eine virtuelle Funktion im Konstruktor aufrufen, was eine schlechte Übung ist.
Aber wie kann ich Accommodations
initialisieren, wenn nicht im Konstruktor?
public class Venue
{
public Venue()
{
Accommodations = new HashSet<Accommodation>();
}
public virtual ICollection<Accommodation> Accommodations { get; set; }
}
der Punkt des träges Ladens ist _nicht_ es überhaupt zu initialisieren, bis erste Benutzung. –
@JohnWillemse Wenn ich es null lasse, bekomme ich null Ausnahme aus meiner Sicht. –
Nein, Sie testen auf Null und initialisieren es bei Bedarf. Siehe Willem Duncans Antwort unten für eine Demonstration der Verwendung. Vielleicht verwechseln wir hier verschiedene Muster, wie Daniels Kommentar zu derselben Antwort sagt. –