Je rencontre des problèmes avec l'actualisation de la collection d'entités associée.Entity Framework POCO - Actualiser une propriété de navigation
Essentiellement, le problème est la suivante:
public class Student
{
public virtual ICollection<Lecture> Lectures { get; set; }
public void AddLecture(Lecture lecture)
{
Lectures.Add(lecture);
}
public void CancelChanges()
{
_context.Refresh(RefreshMode.StoreWins, this);
_context.LoadProperty(this, (o) => o.Lectures,
MergeOption.OverwriteChanges);
}
}
public class Grade
{
public virtual Student { get; set; }
}
Maintenant, j'ai une interface graphique pour ajouter des conférences et, si nous voulons nous pouvons annuler le processus d'édition:
public void ExampleEdit()
{
Student student = _context.Students.SingleOrDefault(/* blah */);
student.AddLecture(_context.Lectures.SingleOrDefault(/* e.g. math */));
student.CancelChanges();
// At this point student SHOULD have no lectures anymore since the
// property was loaded with overwrite changes option.
// Yet the Lectures still contains the lecture we added there
}
Ainsi, le code mal? Y a-t-il une méthode que j'utilise incorrectement? Est-il possible de recharger COMPLÈTEMENT l'objet entier? ..
Merci beaucoup pour l'explication - il a fait beaucoup de choses beaucoup plus claires dans ma tête. Et la solution que vous avez proposée est très pratique - je viens de mettre à jour mon code et la chose fonctionne réellement. – Jefim
Vous êtes les bienvenus, je suis content que cela ait aidé :) –