在我的数据库中,我有一个表类别,列Id,CategoryName,ParentCategoryId,其中ParentCategoryId对Category.Id有一个约束。EF Code First中自引用实体的映射
我使用实体框架代码首先,在实体的样子:
public class Category
{
public long Id { get; private set; }
public string CategoryName { get; private set; }
public long? ParentCategoryId { get; private set; }
public Category ParentCategory { get; private set; }
public virtual ICollection<Category> SubCategories { get; private set; }
}
如果我试图运行对这一查询时,我得到异常:
The relationship 'ComplaintModel.FK_Complaint_Category' was not loaded because the type 'ComplaintModel.Category' is not available.\r\nThe following information may be useful in resolving the previous error:\r\nThe required property 'Category1' does not exist on the type 'EC.Complaint.Services.Command.Domain.Entities.Category'.\r\n\r\n"} System.Exception {System.Data.MetadataException}
所以似乎它需要导航属性,如果我添加这些:
public ICollection<Category> Category1 { get; private set; }
public long? Category2Id { get; private set; }
public Category Category2 { get; private set; }
的查询工作。
但当然,我不想要Category1和Category2属性,我想要使用ParentCategory和SubCategories属性。
如何才能告诉代码首先使用正确的导航属性?
非常类似的问题在这里: http://stackoverflow.com/a/4812413/97803 – 2016-06-27 22:49:13