2011-06-14 20 views
5

Estoy intentando trazar un modelo bastante categoría "estándar" utilizando código de EF PrimeraMapeo elementos secundarios de una misma clase con el Código Marco de la entidad Primera

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; } 
} 

Tengo algo en la línea de:

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

¿Pero esto no parece ocuparse de ChildCategories ??

¿Echo de menos algo?

Para evitar el argumento pregunta duplicado, he seguido la siguiente, sin embargo, no acababa de responder a mi consulta específica:

Code First Mapping for Entity Framework Hierarchy

Entity Framework CTP5 Code-First Mapping - Foreign Key in same table

+0

¿Qué quiere decir con "pero esto no parece ocuparse de las categorías de niños"? –

Respuesta

3

Cambiar su entidad a

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; } 
} 

Make ParentID nullable y para permitir que ChildCategories tenga carga lenta, hazlo virtual.

Cuestiones relacionadas