2014-10-18 3 views
0

Есть ли способ использования аннотировать составной ключ в SQLite для C#? Следующий код генерирует исключение, говоря таблицу имеет более чем один первичный ключ:SQLite для нескольких первичных ключей WinRT?

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; } 
} 
+0

Что именно имеет отношение к Entity Framework здесь? – TomTom

ответ

0

Нет, это не представляется возможное с текущим кодовым, но есть несколько запросов тянуть, чтобы получить установленный https://github.com/praeclarum/sqlite-net/pull/281

+0

Спасибо, надеюсь, они могут исправить исправление в ближайшее время. – shady

0

I имеют решение. Это не лучшее решение, но это сработало для меня.

Идея состоит в том, чтобы сделать составной ключ вручную. Таким образом, в вашем случае, объявить:

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;} 
} 

Затем, когда вы создаете объект, просто сделать де auxCompositeKey следующим образом:

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

+0

И что, если будет две записи, с IdOne = 1, IdTwo = 23 и: IdOne = 12, IdTwo = 3 ;)? – Namek

+0

Он взорвется! лол. Для правильной работы потребуется некоторое обновление, но идея в том, что. – ovamendocino

Смежные вопросы