代码之家  ›  专栏  ›  技术社区  ›  Paul

EF CTP4懒加载不打球

  •  1
  • Paul  · 技术社区  · 15 年前

    我使用的是CTP4代码优先EF框架,但在延迟加载工作时遇到了问题。读起来,应该很简单,但不是

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

    在模型配置中:

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

    但是,当我这样做时:

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

    文件夹.ChildPages是空的…但是它应该是延迟加载的。。。

    2 回复  |  直到 14 年前
        1
  •  1
  •   avpaderno    14 年前

    实际上,我找到了答案:“Folder”的空构造函数被标记为internal,尽管没有硬故障,但这似乎足以导致问题。

        2
  •  0
  •   Ladislav Mrnka    15 年前

    您的上下文是基于DbContext还是基于ObjectContext?如果是ObjectContext,则必须在ContextOptions中启用延迟加载。