2013-04-06 49 views
0

當我嘗試做自我參照與未來實體序列不包含任何元素:自參照代碼首先

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


    public virtual ICollection<Folder> Childrens { get; set; } // Added property 
    public virtual ICollection<ArticleTitle> ArticleTitles { get; set; } 

} 


public class ArticleTitle 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
    public int? FolderId { get; set; } 
    public virtual Folder Folder { get; set; } 
    public virtual Article Article { get; set; } 
} 

我加了一些屬性(評論「添加屬性」),這行代碼:

modelBuilder.Entity<Folder>() 
.HasMany(s => s.Childrens) 
.WithOptional() 
.HasForeignKey(s => s.ParentFolderId); 

並得到此異常:

序列不包含任何元素

這是不正確的自引用?

+0

你在哪裏得到錯誤 – ecampver 2013-04-06 23:37:02

+0

當初始化數據庫(DropCreateIfModelChanges)上下文context = new Context(); context.Database.Initialize(真); – 2013-04-06 23:39:29

+0

嘗試添加'公共虛擬文件夾ParentFolder {get;組; }'然後設置'ParentFolderId'上方的外鍵屬性,如下所示:'[ForeignKey(「ParentFolder」)]' – ecampver 2013-04-06 23:46:24

回答

1

這是你的代碼應該如何看起來像:

public class Folder 
{ 
    public int Id { get; set; } 
    [ForeignKey("ParentFolder")] 
    public int? ParentFolderId { get; set; } 
    public virtual Folder ParentFolder { get; set; } 
    public string Name { get; set; } 


    public virtual ICollection<Folder> Childrens { get; set; } 
    public virtual ICollection<ArticleTitle> ArticleTitles { get; set; } 

} 
... 

我很高興它幫助。

相關問題