2013-03-03 111 views
1

我试图在同一个表中的类别之间添加关系。我有一个ManyToMany与同一张表的关系

类别(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT)

表和

CATEGORIES_CATEGORIES(ID INTEGER PRIMARY KEY AUTOINCREMENT, CATEGORIES_ID INTEGER NOT NULL,SUBCATEGORIES_ID INTEGER NOT NULL)

表。

我试图将它们与Vici Coolstorage ORM一起映射。我做了类

Category类

[MapTo("CATEGORIES")] 
    public abstract class Category : CSObject<Category> 
    { 
     public abstract int Id { get; } 
     public abstract string Name { get; set; } 

     [ManyToMany("CATEGORIES_CATEGORIES", Pure = true)] 
     public abstract CSList<CategoryCategory> Subcategories { get; set; } 
    } 

CategoryCategory类

[MapTo("CATEGORIES_CATEGORIES")] 
    public abstract class CategoryCategory : CSObject<CategoryCategory> 
    { 
     public abstract int Id { get; } 

     [ManyToOne(LocalKey = "CATEGORIES_ID", ForeignKey = "ID")] 
     public abstract Category Cat { get; set; } 
     [ManyToOne(LocalKey = "SUBCATEGORIES_ID", ForeignKey = "ID")] 
     public abstract Category SubCat { get; set; } 
    } 

但我不能使它发挥作用。任何人都可以帮助我获得这种关系吗?

+1

什么行不通。请详细说明。 – Cheesebaron 2013-03-03 21:37:36

回答

2

您的映射表不应该是多对多关系的目标。

尝试这样:

[ManyToMany("CATEGORIES_CATEGORIES", 
      LocalKey="ID", ForeignKey="ID", 
      LocalLinkKey="CATEGORIES_ID", ForeignLinkKey="SUBCATEGORIES_ID")] 
public abstract CSList<Category> Subcategories { get; } 
+0

谢谢,现在它工作:) – evilone 2013-03-04 04:44:12