Отображение дочерних элементов того же класса с помощью Entity Framework Code First - PullRequest
5 голосов
/ 15 июня 2011

Я пытаюсь отобразить довольно "стандартную" модель категории, используя EF Code First

public class Category
{
    public int ID { get; set; }
    public int ParentID { get; set; }

    public string Name { get; set; }

    public Category ParentCategory { get; set; }
    public List<Category> ChildCategories { get; set; }
}

У меня есть что-то вроде:

modelBuilder.Entity<Category>()
    .HasOptional(t => t.ParentCategory)
    .WithMany()
    .HasForeignKey(t => t.ParentCategoryID)
    .WillCascadeOnDelete();

Но, похоже, это не заботится о ChildCategories ??

Я что-то упустил?

Чтобы избежать дублирования аргумента вопроса, я следовал следующему, однако не совсем ответил на мой конкретный запрос:

Отображение кода в первую очередь для иерархии Entity Framework

Сопоставление кода CTP5 Entity Framework - внешний ключ в той же таблице

1 Ответ

3 голосов
/ 15 июня 2011

Измените вашу сущность на

public class Category
{
    public int ID { get; set; }
    public int? ParentID { get; set; }

    public string Name { get; set; }

    public virtual Category ParentCategory { get; set; }
    public virtual IList<Category> ChildCategories { get; set; }
}

Сделайте ParentID обнуляемым и сделайте так, чтобы ChildCategories загружался лениво, сделайте его виртуальным.

...