2011-09-28 98 views
1

我有一個數據庫中的表指向自己,即parent_id >>類別ID。這是ER圖 ER Diagram代碼先用現有的數據庫

我也仿照這個表像下,但它給*錯誤:「類別」:成員名稱不能與它們的封閉類型

public class Category 
{ 
    [Key] 
    public int category_id { get; set; } 
    public string category_name { get; set; } 
    public int category_parent { get; set; } 
    public string category_desc { get; set; } 

    public virtual Category Category { get; set; } 
} 

如何我應該模擬這些表嗎?

回答

1

我想你只需要改變的類別屬性名稱到別的東西,所以它是不一樣的類名...

public virtual Category SubCategory { get; set; }

2

您必須將category_parent設置爲空,並將導航屬性Category設置爲標量屬性category_parent。嘗試使用適當的命名傳送。

public class Category 
{ 
    [Key] 
    [Column("category_id")] 
    public int Id { get; set; } 

    [Column("category_name")] 
    public string Name { get; set; } 

    [Column("category_parent")] 
    public int? ParentId { get; set; } 

    [Column("category_desc")] 
    public string Description { get; set; } 

    [ForeignKey("ParentId")] 
    public virtual Category ParentCategory { get; set; } 
} 
1
public class Category 
{ 
    [Key] 
    public int category_id { get; set; } 
    public string category_name { get; set; } 
    public int category_parent { get; set; } 
    public string category_desc { get; set; } 

    public int parent_category_id { get; set; } <-- ADD & setup as foreign key 
    public virtual Category ParentCategory { get; set; } <-- Change name 

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

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 

    modelBuilder.Entity<Category>.HasMany(cat => cat.Categories) 
      .WithRequired() 
      .HasForeignKey(cat => cat.parent_category_id);   
} 
相關問題