0

有没有办法在 SQLite for 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; }
}
4

2 回答 2

0

不,当前的代码库不可能,但是有几个拉取请求来修复它https://github.com/praeclarum/sqlite-net/pull/281

于 2014-10-19T09:21:27.150 回答
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()。

于 2015-03-31T16:30:40.360 回答