Я ищу способ установить вручную модифицируемый для виртуального свойства в Entity Framework.
В настоящее время я знаю, как установить для обычных свойств, однако когда я перемещался по свойствам внутри PropertyInfo class, я могу найти только GetMethod.IsVirtual Когда я устанавливаю для свойства значение Modifed.
public class Student
{
public Student()
{
this.Courses = new HashSet<Course>();
}
public int StudentID { get; set; }
public string StudentName { get; set; }
public DateTime? DateOfBirth { get; set; }
public decimal Height { get; set; }
public float Weight { get; set; }
public byte[] RowVersion { get; set; }
public int? GradeId { get; set; }
public virtual Grade Grade { get; set; }
public virtual StudentAddress Address { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
Я хочу обновлять только поля, отмеченные как измененные. В этом примере я пытаюсь отметить ICollection как измененное с помощью entity- framework,
ctx.Entry(student).Property(x => x.Courses).IsModified = true;
Я получаю это исключение
System.ArgumentException: 'Свойство «Курсы» для типа «Студент» не является примитивным или сложным свойством. Метод Property можно использовать только с примитивными или сложными свойствами. Используйте метод ссылки или коллекции. '