EF 4.1 Codefirst WPF требует привязки загружаемых данных

#wpf #data-binding #ef-code-first #entity-framework-4.1 #eager-loading

#wpf #привязка данных #ef-code-first #entity-framework-4.1 #ожидающий загрузки

Вопрос:

У меня возникли проблемы с привязкой данных к EF-коду в первую очередь. Мне нужно использовать быструю загрузку, но я сталкиваюсь с некоторыми проблемами с привязкой данных. У меня есть следующие классы:

 public class Context : DbContext
{
    DbSet<A> As;
    DbSet<B> Bs;
    DbSet<C> Cs;
}
public class A
{
   public ICollection<B> Bs { get; set; }
   public string Name { get; set; }
}
public class B
{
   public ICollection<C> Cs { get; set; }
   public string Name { get; set; }
}
public class C
{
   public string Name { get; set; }
}
  

Я являюсь контекстом привязки данных.Что касается просмотра дерева, используя приведенный ниже код:

 Context.As.Load();
tvItems.ItemsSource = Context.As.Local;
  

Это работает так, как ожидалось, однако это не приводит к автоматической загрузке дочерних свойств, Bs, а впоследствии, Cs. Итак, я обнаружил, что отложенная загрузка может помочь с этим, вот так:

 Context.As.Load();
tvItems.ItemsSource = Context.As.Include(u=>u.Bs);
  

Из моего чтения следует, что это должно автоматически загружать по крайней мере первый уровень дочерних свойств. Однако это не приведет к привязке данных, поскольку я не использовал .Местные новости

.Include() возвращает IQueryable, который не поддерживается .Местные новости. Я могу использовать.ToList (), но это не будет автоматически обновляться при добавлении элементов.

Итак, как, черт возьми, я должен это делать?

Ответ №1:

Вы могли бы попробовать это:

 Context.As.Include(a => a.Bs).Load();
tvItems.ItemsSource = Context.As.Local;
  

Комментарии:

1. Должен был разобраться с этим самостоятельно… Большое спасибо!