我正在尝试创建一个可以选择引用同一类型的父级的模型,例如:
public class Category
{
public virtual long CategoryID { get; set; }
public virtual Category? ParentCategory { get; set; }
public virtual int UserID { get; set; }
public virtual string Name { get; set; }
}
如您所见,有一个名为 ParentCategory 的可选成员是可选的,它引用 Category 类型的类(即相同类型)。我相信您可以猜到,我正在尝试创建一个简单的类别树,其中根节点将没有父节点。
当 Entity Framework 尝试创建数据库时,这会导致以下错误:
“类型‘MyProject.Models.Category’上的属性‘ParentCategoryID’上的 ForeignKeyAttribute 无效。在依赖类型‘MyProject.Models.Category’上找不到导航属性‘Category’。名称值应该是有效的导航属性名称。”
我也试过这个:
public class Category
{
public virtual long CategoryID { get; set; }
[ForeignKey("Category")]
public virtual long? ParentCategoryID { get; set; }
public virtual int UserID { get; set; }
public virtual string Name { get; set; }
}
但这又导致了同样的错误。
是否可以使用 EF Code First 对此进行建模?如果我要手动创建数据库,很容易在数据库中建模。
在此先感谢本