多列上的SQLite ORM主键

时间:2014-10-11 08:27:44

标签: c# database sqlite orm primary-key

在SQLite中为多于一列指定主键的语法是什么?

我正在使用Xamarin在C#中开发一个应用程序,并希望使用SQLite ORM在多个列上使用带有主键的表。

TableObject类定义了一个表。 我想确保ProductID和RetailerID的组合是唯一的。 为此,我希望将列组合作为主键。

我尝试了以下内容:

class TableObject
{
    [PrimaryKey]
    public int ProductID { get; set; }
    [PrimaryKey]
    public int RetailerID { get; set; }
    public decimal Price { get; set; }
}

表格创建如下:

database.CreateTable<Cache>();

但我得到以下例外:

  

SQLite.Net.SQLiteException:table“TableObject”具有多个主键

在“默认”SQLite中,可以使用以下方法完成:

CREATE TABLE something (column1, column2, column3, PRIMARY KEY (column1, column2));

但是如何使用SQLite ORM完成此操作?

1 个答案:

答案 0 :(得分:1)

这不受支持,你可以在这里阅读: https://forums.xamarin.com/discussion/14769/how-do-we-create-a-composite-primary-key-using-sqlite-net-orm

有人扩展了SQLite PCL以启用一些其他功能 https://github.com/softlion/SQLite.Net-PCL