Es ist mein Verständnis, dass, wenn ich faul Laden in meiner EF6 Anwendung verwenden möchte, sollte ich Code meine Beziehungen wie dies mit den letzten beiden Punkte als virtuelle markiert:Wenn ich lazy loading auf false gesetzt habe (vorerst), ist es dann wichtig, ob ich das "virtuelle" Schlüsselwort einfüge oder es auslasse?
public class Test
{
public int TestId { get; set; }
public int ExamId { get; set; }
public string Title { get; set; }
public int Status { get; set; }
public System.DateTime CreatedDate { get; set; }
public virtual Exam Exam { get; set; }
public virtual ICollection<UserTest> UserTests { get; set; }
}
Wenn ich will nicht faul Laden verwenden (im Moment) und wenn ich die Lazyloading-Konfiguration auf "false" setze, gibt es irgendwelche Leistungsüberlegungen, wenn ich das virtuelle Schlüsselwort belasse oder sollte ich meine Klasse ohne das Schlüsselwort so schreiben?
public class Test
{
public int TestId { get; set; }
public int ExamId { get; set; }
public string Title { get; set; }
public int Status { get; set; }
public System.DateTime CreatedDate { get; set; }
public Exam Exam { get; set; }
public ICollection<UserTest> UserTests { get; set; }
}
Der Grund Ich frage das ist ich Flexibilität im virtual
Stichwort, indem sie halten mag, aber nur, wenn das wird Problem für mich nicht verursachen, wenn ich faul Laden bin nicht verwenden.
Ich las die folgenden
„, wenn Sie das virtuelle Schlüsselwort auf einem ICollection/one-to-many-Beziehung Eigenschaft verwenden, wird es standardmäßig faul belastet sein, während, wenn Sie das Schlüsselwort virtual auslassen Es wird eifrig geladen sein. "
Ist das wahr, auch wenn ich DbContext.Configuration.LazyLoadingEnabled = false;
einstelle?
Wenn Sie es einstellen, wird das eifrige Laden durchgeführt. Und virtuelles Schlüsselwort bedeutet anders ich denke –
Was meinst du "wenn du es einstellst"? – Melina
Wenn Sie lazyloadingenabled auf false setzen –