2012-03-22 34 views

回答

1

实体

public class Category : Entity 
{ 
    public int Id { get; set; } 

    public string Name { get; set; } 

    public int? ParentId { get; set; } 

    public virtual Category ParentCategory { get; set; } 

    public virtual ICollection<Category> SubCategories { get; set; } 
} 

和映射

public class CategoryMap : EntityTypeConfiguration<Category> 
{ 
    public CategoryMap() 
    { 
     HasKey(category => category.Id); 

     Property(category => category.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 

     HasOptional(category => category.ParentCategory) 
      .WithMany(category => category.SubCategories) 
      .HasForeignKey(category => category.ParentId); 
    } 
} 
+0

继续错误:无效的对象名称'dbo.Category' – 2012-03-22 05:32:10

+0

@ViniciusSaeta您是否有'Category'的现有表? – Eranga 2012-03-22 07:40:45

+0

在创建表的过程中发生错误。 – 2012-03-22 10:20:43

1

我相信你可以在你的Category类中创建一个属性。

public virtual IEnumerable<Category> Categories {get;set;} 
+0

但映射?我该怎么做?我试过了,失败了。 – 2012-03-22 05:20:25

+0

确保您的所有属性都是虚拟的。 – 2012-03-22 05:22:40

+0

继续错误:无效的对象名称'dbo.Category' – 2012-03-22 05:26:55