在 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 中创建和编辑

如何在 Mongoose 中创建和使用枚举

如何在 iOS 的核心数据中创建和使用带有查询的 NSPredicate?

在 CPP 中创建和使用 DLL

IAR模板--怎样在IARproject中创建和使用模板

markdown 在wordpress中创建和使用自定义全局变量。