Ich brauche einGibt es ein DbSet <TEntity>. Lokale Entsprechung in Entity Framework 7?
ObservableCollection<TEntity>
in EF7,
DbSet<TEntity>.Local
nicht zu existieren scheint;
Gibt es eine Problemumgehung?
Ich brauche einGibt es ein DbSet <TEntity>. Lokale Entsprechung in Entity Framework 7?
ObservableCollection<TEntity>
in EF7,
DbSet<TEntity>.Local
nicht zu existieren scheint;
Gibt es eine Problemumgehung?
Die aktuelle Version von EntityFramework (RC1-final) hat keine DbSet.Local-Funktion. Aber! Mit der aktuellen Erweiterungsmethode können Sie etwas Ähnliches erreichen:
public static class Extensions
{
public static ObservableCollection<TEntity> GetLocal<TEntity>(this DbSet<TEntity> set)
where TEntity : class
{
var context = set.GetService<DbContext>();
var data = context.ChangeTracker.Entries<TEntity>().Select(e => e.Entity);
var collection = new ObservableCollection<TEntity>(data);
collection.CollectionChanged += (s, e) =>
{
if (e.NewItems != null)
{
context.AddRange(e.NewItems.Cast<TEntity>());
}
if (e.OldItems != null)
{
context.RemoveRange(e.OldItems.Cast<TEntity>());
}
};
return collection;
}
}
Hinweis: Die Liste wird nicht aktualisiert, wenn Sie nach weiteren Daten suchen. Die Änderungen an der Liste werden jedoch wieder in den Change-Tracker synchronisiert.