В моей базе данных у меня есть таблица Category, со столбцами Id, CategoryName, ParentCategoryId, где ParentCategoryId имеет ограничение на Category.Id.
Сначала я использую код инфраструктуры сущностей, где сущность выглядит как:
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.
Как мне сказатьсначала код, чтобы использовать правильные свойства навигации?