SQLite for WinRT多个主键?

时间:2014-10-18 17:27:15

标签: c# sqlite sqlite-net

有没有办法在SQLite中为c#使用复合键注释?以下代码抛出一个异常,表示该表有多个主键:

userDatabase.CreateTable<MyObject>();

//class file
[SQLite.Table("MyObject")]
public class MyObject
{
    [SQLite.PrimaryKey]
    public int IdOne { get; set; }

    [SQLite.PrimaryKey]
    public int IdTwo { get; set; }
}

2 个答案:

答案 0 :(得分:0)

不,目前的代码库是不可能的,但有几个拉取请求可以解决它https://github.com/praeclarum/sqlite-net/pull/281

答案 1 :(得分:0)

我有一个解决方案。这不是最好的解决方案,但它对我有用。

想法是手动制作复合键。 因此,在您的情况下,声明它:

userDatabase.CreateTable<MyObject>();

//class file
[SQLite.Table("MyObject")]
public class MyObject
{
    public int IdOne { get; set; }
    public int IdTwo { get; set; }

    [SQLite.PrimaryKey]
    public string auxCompositeKey {get; set;}
}

然后,在创建对象时,只需按如下方式创建de auxCompositeKey:

oMyObject.auxCompositeKey = IdOne.ToString()+ IdTwo.ToString()。