在 SQLite.Net-PCL 中创建和使用具有复合主键的表
Posted
技术标签:
【中文标题】在 SQLite.Net-PCL 中创建和使用具有复合主键的表【英文标题】:Creating and using a table with a composite primary key in SQLite.Net-PCL 【发布时间】:2017-08-01 04:17:21 【问题描述】:众所周知,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】:您可以使用复合唯一键。
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;
【讨论】:
如果这解决了他们的问题,有人可以发表评论吗?还是更好地标记为已接受?以上是关于在 SQLite.Net-PCL 中创建和使用具有复合主键的表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用相同的表单在 ruby on rails 中创建和编辑