2010-10-07 60 views
1

我正在使用CTP4代碼第一個EF框架,但我有延遲加載工作的問題。它讀了,它應該是簡單的,但它只是不EF CTP4懶加載不玩球

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

folder.ChildPages是空....但它應該是延遲加載它...

回答

1

實際上,我找到了答案:「文件夾」的空構造函數被標記爲內部函數,雖然沒有嚴重失敗,但似乎這足以導致問題。

+0

我發現這也可能發生在類本身被標記爲內部時。在我今天一直在研究的一個項目中,我放棄了課程可見性(將課程留在內部),而延遲加載完全拒絕工作,直到我將其更改爲公開。 – 2011-03-31 19:19:54

0

是基於DbContext或ObjectContext的上下文嗎?如果它是ObjectContext,那麼你必須打開ContextOptions中的延遲加載。

+0

It's DbContext alas – Paul 2010-10-08 11:03:28