【发布时间】:2013-03-02 02:52:33
【问题描述】:
假设我有一个类 Box:
public class Box
{
[Required]
[Key]
int BoxId { get; set; }
string BoxName { get; set; }
}
我希望能够将盒子添加到其他盒子 - 一个盒子可以有很多盒子或属于一个盒子,但它也不需要。
我试图在我的项目中这样建模:
public class Box
{
[Required]
[Key, ForeignKey("ParentBox")]
int BoxId { get; set; }
string BoxName { get; set; }
int ParentBoxId { get; set; }
Box ParentBox { get; set; }
List<Box> Boxes {get; set;}
}
但是,this question 中解决了以下错误:
无法确定主端 'App.Core.Set_ParentSet' 关系。多个添加的实体 可能有相同的主键。
删除 ForeignKey 属性可以让我构建数据库,但随后级联删除不起作用。
我不想为 ChildBox 或 ParentBox 创建不同的类,因为一个盒子是否属于/有盒子在我的应用程序中会一直发生变化。
在 EF 中对此进行建模的正确方法是什么?
【问题讨论】:
标签: c# entity-framework ef-code-first entity-framework-5 self-reference