У меня есть таблица категорий, которая имеет внешний ключ для себя через обнуляемое поле parentId. В Entity-Framework при создании отношения объект создается без каких-либо полей отношения. Я имею в виду, что в моем примере, когда я создал отношение parentId-Id в таблице категорий, сгенерированный объект категории будет иметь свойство Id с типом int и свойство ParentCategory с типом Category, а свойство ParentId отсутствует. И это делает мои запросы сложнее.
Итак, у меня возникает проблема, когда я хочу выбрать подкатегории категории. Я использую метод ниже для этого;
public IEnumerable<ICategory> GetSubCategories(long? categoryId)
{
var subCategories = this.Repository.Category.Where(c => c.ParentCategory.Id == categoryId)
.ToList().Cast<ICategory>();
return subCategories;
}
Но это не работает, когда я хочу выбрать корневые категории. Как это сделать?
Кстати, мне интересно, есть ли способ генерировать сущности, такие как в Linq to Sql, со свойством int с типизированным Id, типом int с типом ParentId и свойством Type с типом ParentCategory.