众所周知 issue SQLite.Net-PCL 不支持复合 PK,如果我不想回退到像这样的结构,我需要这个功能

create table something(value varchar primary key not null);
insert into something(value) values("$Value1,$Value2");

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

table 的布局是这样的
class ChannelBinding {
    [PrimaryKey]
    public int Id { get; set; }

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

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

最佳答案

您可以使用复合唯一键。

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

关于c# - 在 SQLite.Net-PCL 中创建和使用具有复合主键的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42724830/

10-12 17:19