在SQLite.Net-PCL中创建和使用具有复合主键的表

时间:2017-03-10 17:56:05

标签: c# sql sqlite orm

已知issue SQLite.Net-PCL不支持复合PK,如果我不想回到像

这样的结构,我需要这个功能。
create table something(value varchar primary key not null);
insert into something(value) values("$Value1,$Value2");

手动(不使用ORM)创建具有复合主键的表也不起作用,抛出相同的SQLiteException,告诉我我的表有多个主键。

表的布局就像这样

class ChannelBinding {
    [PrimaryKey]
    public int Id { get; set; }

    [PrimaryKey]
    public string ChannelId { get; set; }
}

我想知道是否有任何已知的解决方法可以模拟复合PK的行为。

1 个答案:

答案 0 :(得分:0)

您可以使用复合唯一键。

class ChannelBinding {
    [Indexed(Name = "CompositeKey", Order = 1, Unique = true)]
    public int Id { get; set; }

    [Indexed(Name = "CompositeKey", Order = 2, Unique = true)]
    public string ChannelId { get; set; }
}