众所周知 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/