【问题标题】:ManyToMany relationship to the same table同一张表的多对多关系
【发布时间】:2013-02-17 22:01:27
【问题描述】:

我正在尝试在同一个表中添加类别之间的关系。我有一个

类别(ID 整数主键自动增量,名称文本)

表和

CATEGORIES_CATEGORIES(ID 整数主键自动增量, CATEGORIES_ID INTEGER NOT NULL, SUBCATEGORIES_ID INTEGER NOT NULL)

桌子。

我正在尝试将它们与 Vici Coolstorage ORM 一起映射。我已经上课了

类别类

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

但我不能让它工作。谁能帮我解决这种关系?

【问题讨论】:

  • 什么不起作用。请详细说明。

标签: c# xamarin.android coolstorage


【解决方案1】:

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

试试这样的:

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

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 2020-09-09
    • 2015-11-12
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多