【发布时间】:2013-04-07 08:06:18
【问题描述】:
当我尝试对下一个实体进行自引用时
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);
得到这个异常:
序列不包含任何元素
自引用不正确吗?
【问题讨论】:
-
你在哪里得到错误
-
初始化数据库时(DropCreateIfModelChanges) Context context = new Context(); context.Database.Initialize(true);
-
尝试添加
public virtual Folder ParentFolder { get; set; },然后在ParentFolderId上方设置外键属性,如下所示:[ForeignKey("ParentFolder")] -
我添加了您的代码并删除了流利的 api 绑定和 Childrens 属性,而不是所有工作。谢谢。
-
请作为答案。
标签: entity-framework code-first