Почему this.ChangeTracker.LazyLoadingEnabled = false; не работает? - PullRequest
0 голосов
/ 05 августа 2020

Я использовал this.ChangeTracker.LazyLoadingEnabled = false в своем dbcontext constructor, чтобы отключить отложенную загрузку глобально, но это не работает.

1 Ответ

0 голосов
/ 05 августа 2020

Во-первых, вы устанавливаете this.ChangeTracker.LazyLoadingEnabled = false и хотите отключить его на уровне каждого свойства. Вам нужно изменить его на не виртуальный. И он будет работать со связанным свойством, например (StudentClass):

public class Student
    {
        public Student() { }
 
        public int StudentId { get; set; }
        public string StudentName { get; set; }
        public virtual StudentAddress StudentAddress { get; set; }
    }
public class StudentAddress 
    {
        [Key, ForeignKey("Student")]
        public int StudentId { get; set; }
        
        public string Address1 { get; set; }
        public string Address2 { get; set; }
       
 
        public virtual Student Student { get; set; }
    }

необходимо изменить на:

public class Student
        {
            public Student() { }
     
            public int StudentId { get; set; }
            public string StudentName { get; set; }
            public StudentAddress StudentAddress { get; set; }
        }
    public class StudentAddress 
        {
            [Key, ForeignKey("Student")]
            public int StudentId { get; set; }
            
            public string Address1 { get; set; }
            public string Address2 { get; set; }
           
     
            public Student Student { get; set; }
        }

А отключение отложенной загрузки означает, что вам придется вручную обрабатывать загрузку каждого связанного свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...