Kurzfassung Keeping:ein IEnumerable und eine ObservableCollection synchron
Ich habe zwei Sammlungen: eine IEnumerable
und eine ObservableCollection
. Ich brauche einen Weg, um sie synchron zu halten. Das heißt, wenn ein Artikel in einem Artikel hinzugefügt, gelöscht oder aktualisiert wird, wird dieser Artikel und nur dieser Artikel automatisch hinzugefügt, gelöscht oder aktualisiert. Wie kann das gemacht werden?
Lange Version: Ich verwende Entity Framework
mit WPF
. Da ich Repository-Muster mit MVVM
implementiere, erhält der ViewModel
nur IEnumerable
von Entitäten. Ich brauche sie in ObservableCollection
umgewandelt werden, ohne die Fähigkeit change tracking
von Entity Framework
zur Verfügung gestellt zu verlieren.
Ich habe das Netz nach der Lösung gesucht, aber vergeblich. Gibt es einen Weg, es richtig zu machen?
Eine naive Frage hier: Nehmen wir an, ich tue dies in meinem Repository: 'IEnumerable Findwhere (Ausdruck > Prädikat) {return context.Set () .Where (Prädikat) .ToList(); } ' Mit anderen Worten, ich bin eifrig laden. Wenn ich Local verwenden möchte, soll ich explizit Load() laden? –
Ihre Bearbeitung hat vielleicht funktioniert, wenn ich nur eine Methode in meinem Repository hatte. Aber hier ist nur ein Teil davon. Wie soll ich damit umgehen? 'öffentliche T FetchByPrimaryKey (Objekt Primärschlüssel) { Rückkehr _ctx.Set() .Find (Primärschlüssel); } public IEnumerable Findwhere (Expression > Prädikat) { return _ctx.Set () .Where (Prädikat).Auflisten(); } public T FirstOrDefault (Expression > Prädikat) { return _ctx.Set () .Where (Prädikat) .FirstOrDefault(); } ' –