开发者

EF 4.1 Codefirst WPF Eager Loading Data Binding

I am having problems databinding to EF code first. I need to be using Eager Loading, but I am running into some issues with databinding. I have the following classes:

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; }
}

I am data binding Context.As to a Treeview, using the below code:

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

This works as expected, however, it does not automatically load the child properties, Bs, and subsequently, Cs. So, I found that lazy loading can help with this, like so:

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

From my reading, this should automatically load at least the first level of child properties. However, this will not data bind, as I did not us开发者_如何学JAVAe .Local

.Include() returns IQueryable, which does not support .Local. I can use .ToList(), but this will not automatically update when I add items.

So, how the hell am I supposed to be doing this?


You could try this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜