title: How to eager load (include) a private field collection with a public read only property
body: <p>System.NotSupportedException : Collection is read-only.
  at System.ThrowHelper.ThrowNotSupportedException(ExceptionResource resource)
  at Microsoft.EntityFrameworkCore.Metadata.Internal.ClrICollectionAccessor`3.Add(Object instance, Object value)
     at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.NavigationFixer.AddToCollection(InternalEntityEntry entry, INavigation navigation, IClrCollectionAccessor collectionAccessor, Object value)</p>
  
  <pre><code>public class Student 
  {
       public int Id {get; private set;}
       private List&lt;StudentProgress&gt; _progresses;
       protected Student()
       {
          _progresses = new List&lt;StudentProgress&gt;();
       }
      public IEnumerable&lt;StudentProgress&gt; Progresses =&gt;_progresses.AsReadOnly();
  }
  
  public class StudentProgress 
  {
      public int Id {get; private set;}
      public int ProgressStatusId { get; private set; }
      public int Year { get; private set; }
      public Grade Grade { get; private set; }
      public int CourseId { get; private set; }
  
      public StudentProgress(Grade grade, int year, int courseId, int progress)
      {
          ProgressStatusId = progress;
          Year = year;
          Grade = grade;
          CourseId = courseId;
      }
  }
  
  public class StudentEntityTypeConfiguration : IEntityTypeConfiguration&lt;Student&gt;
  {
      public void Configure(EntityTypeBuilder&lt;Student&gt; studentConfiguration)
      {
          studentConfiguration.HasKey(x =&gt; x.Id);
          studentConfiguration.Ignore(x =&gt; x.DomainEvents);
  
        studentConfiguration.Metadata.FindNavigation(nameof(Student.Progresses))
          .SetPropertyAccessMode(PropertyAccessMode.Field);
      }
  }
  
  public class Context : DbContext
  {
      protected override void OnModelCreating(ModelBuilder builder)
      {
          base.OnModelCreating(builder);
          builder.ApplyConfiguration(new StudentEntityTypeConfiguration());
      }
  }
  </code></pre>
  
  <p>this is where I'm getting the error (Repository):</p>
  
  <pre><code>public async Task&lt;Student&gt; FindAsync(int identity)
  {
      var student = await _context.Set&lt;Student&gt;()
          .Include(x=&gt;x.Progresses) // this line is generating the error
          .Where(b =&gt; b.Id == identity)
          .SingleOrDefaultAsync();
  
          return student;
  }
  </code></pre>