Kod Entity Framework First Lazy Loading

Mam dwie klasy obiektów

public class User
{
    public Guid Id { get; set; }
    public string Name { get; set; }

    // Navigation
    public ICollection<Product> Products { get; set; }
}

public class Product
{
    public Guid Id { get; set; }

    // Navigation
    public User User { get; set; }
    public Guid User_Id { get; set; }

    public string Name { get; set; }
}

Kiedy ładuję użytkownika za pomocą dataContext, otrzymuję listę produktów o wartości NULL (jest to OK).

Jeśli dodam słowo kluczowe „wirtualne” do listy produktów,

public virtual ICollection<Product> Products { get; set; }

kiedy ładuję użytkownika, otrzymuję również listę produktów.

Dlaczego to się dzieje? Myślałem, że słowo kluczowe „virtual” jest używane do nie ładowania jednostek, chyba że wyraźnie to zaznaczysz (używając instrukcji „Dołącz”)

Myślę, że wszystko się myliło

questionAnswers(2)

yourAnswerToTheQuestion