2010-10-07 2 views
1

J'utilise le premier framework EF du code CTP4, mais j'ai du mal à faire fonctionner le chargement paresseux. La lecture sur le sujet, il devrait être simple, mais il est tout simplement pasEF chargement paresseux CTP4 pas jouer à la balle

public class Folder 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int? ParentFolderId { get; set; } 

    public virtual IList<Folder> ChildFolders { get; set; } 
} 

Dans la configuration du modèle:

HasMany(f => f.ChildFolders).WithOptional().HasConstraint((child, folder) => child.ParentFolderId == folder.Id); 

Cependant, quand je fais ceci:

Folder folder = context.Folders.SingleOrDefault(f => f.Id == 1); 

folder.ChildPages est null .... mais il devrait être paresseux le charger ...

Répondre

1

J'ai trouvé la réponse à ceci, en fait: Le constructeur vide pour "Dossier" a été marqué interne, et bien qu'il n'y ait pas eu de défaillances, il semble que cela ait été suffisant pour causer des problèmes.

+0

J'ai trouvé que cela peut aussi arriver quand la classe elle-même est marquée comme interne. Dans un projet sur lequel je travaillais aujourd'hui, j'ai laissé la visibilité en classe (en laissant les classes internes), et le chargement paresseux a absolument refusé de fonctionner jusqu'à ce que je les change en public. –

0

Votre contexte est-il basé sur DbContext ou ObjectContext? Si c'est ObjectContext alors vous devez activer le chargement paresseux dans ContextOptions.

+0

C'est DbContext hélas – Paul

Questions connexes