【问题标题】:SQLite ORM primary keys on multiple columns多列上的 SQLite ORM 主键
【发布时间】:2014-10-11 08:27:43
【问题描述】:

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

我正在使用 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: 表“TableObject”有多个主键

在“默认”SQLite 中,可以使用:

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

但是我如何使用 SQLite ORM 来完成这个?

【问题讨论】:

  • 如果数据优先选项可用,您可以按照您的建议尝试使用架构的快速测试数据库并从架构创建模型,以查看它在代码中生成的内容。跨度>

标签: c# database sqlite orm primary-key


【解决方案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

【讨论】:

    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2011-06-29
    • 2011-03-04
    相关资源
    最近更新 更多