1

我遇到问题首先将数据绑定到EF代码。我需要使用Eager Loading,但我遇到了一些数据绑定问题。我有以下类:EF 4.1 Codefirst WPF Eager Loading数据绑定

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到树视图,使用下面的代码:

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

可正常工作,但是,它不会自动加载子属性,Bs和随后的Cs。所以,我发现,延迟加载可以帮助这一点,就像这样:

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

从我读,这应自动加载至少子属性的第一级。但是,这不会与数据绑定,因为我没有使用。本地

.Include()返回IQueryable,它不支持.Local。我可以使用.ToList(),但添加项目时不会自动更新。

那么,我应该怎么做到这一点?

回答

4

你可以试试这个:

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

应该想到的是自己出去了......非常感谢! – 2011-05-22 20:34:03