1

J'ai des problèmes de liaison de données avec le code EF en premier. Je dois utiliser Eager Loading, mais je rencontre des problèmes avec la liaison de données. Je les classes suivantes:EF 4.1 Codefirst WPF Eager Chargement de liaison de données

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

Je suis liaison de données Context.As à un Treeview, en utilisant le code ci-dessous:

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

Cela fonctionne comme prévu, cependant, il ne se charge pas automatiquement l'enfant propriétés, Bs, et par la suite, Cs. Donc, je trouve que le chargement paresseux peut aider, comme ceci:

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

De ma lecture, cela devrait charger automatiquement au moins le premier niveau de propriétés de l'enfant. Toutefois, cela ne liera pas les données, car je n'ai pas utilisé .Local

.Include() renvoie IQueryable, qui ne prend pas en charge .Local. Je peux utiliser .ToList(), mais cela ne sera pas automatiquement mis à jour lorsque j'ajouterai des éléments. Alors, comment diable suis-je censé faire ça?

Répondre

4

Vous pouvez essayer ceci:

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

Aurait pensé que sur mon propre ... Merci beaucoup! –

Questions connexes