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