我有一个POCO课程如下
public class Category
{
public int ID {get; set; }
public string desc {get; set; }
public int parentID {et; set; }
}
public class Issue
{
public int ID {get; set;}
....
public int categoryID {get; set; }
public int subCategoryID {get; set; }
public virtual Category category{get; set; }
public virtual Category subCategory {get; set;}
}
我一直在使用上述类的外键出错。基本上,我的Category表包含子类别的类别。一个问题可以有一个category和subCategory。有人会引导我找到定义这种关系的正确方法吗?我尝试过使用外键注释,但它给出了一个错误,说明数据库已创建,但由于在Issue上指定了外键关系,对象创建失败。有什么想法吗?我能做些什么来解决这个问题?
答案 0 :(得分:4)
请参阅此文章 - How to Configure a Self Referencing Entity in Code First
我相信这会帮助您正确设置关系。正如您将在文章中看到的那样,您需要在DbContext类的OnModelCreating方法中定义一些附加的流畅设置。
答案 1 :(得分:2)
你可以用一个班级来完成这个。
首先,对于EF4.1代码,我有以下示例:
/// <summary>
/// represents a single configuration item within CM
/// </summary>
public class CI
{
[Key]
public int ID { get; set; }
....
[ForeignKey("Parent")]
public int? Parent_ID { get; set; }
[InverseProperty("Parent")]
[ForeignKey("Parent_ID")]
public virtual ICollection<CI> Contents { get; set; }
[InverseProperty("Contents")]
public virtual CI Parent { get; set; }