這是我的理解是,如果我想在我的EF6應用程序中使用延遲加載,我應該 這樣的代碼我的人際關係與最後兩個項目標記爲虛擬:如果我將懶加載設置爲false(現在),那麼,如果我包含「虛擬」關鍵字還是將它保留出去,那麼這很重要嗎?
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; }
}
如果我不想使用延遲加載(目前),如果我將lazyloading配置設置爲false,那麼如果我留在virtual關鍵字中還是有任何性能方面的考慮,或者我應該像這樣編寫我的類沒有關鍵字?
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; }
}
的原因,我問這是我想通過在virtual
關鍵字保持,但是當我不使用延遲加載只有不會引起任何問題,對我來說,保持靈活性。
我閱讀下列
「如果你使用虛擬關鍵字上ICollection的/一個一對多的關係屬性,它會延遲加載默認情況下,而如果你離開虛擬關鍵字出,它會被急切加載。「
即使我設置了DbContext.Configuration.LazyLoadingEnabled = false;
,這是否正確?
如果你設置它,然後立即加載會做。和虛擬關鍵字意味着不同的,我認爲 –
你是什麼意思「如果你把它」? – Melina
如果設置lazyloadingenabled假 –