2016-04-17 54 views
0

我正在使用Xamarin構建一個使用SQlite作爲其主數據源的Android應用程序。我很難將我的頭部包裹到將數據插入到數據庫中的概念。當我嘗試插入對象而不提及主鍵時,我收到「約束」錯誤消息。如何在不提供主鍵的情況下在SQlite中插入數據?

比如我有表「產品」如下:

class Person 
{ 
    [PrimaryKey, Unique] 
    public int ID { get; set; } 
    public String personName { get; set; } 
    public int photoId { get; set; } 
} 

如果我做db.Insert(new Person(){personName = "xyz", photoId = 23})我會得到錯誤信息,但如果我這樣做db.Insert(new Person(){ID = 1, personName = "xyz", photoId = 23})數據插入會成功。如何插入數據而不提供主鍵並且不使主鍵可以爲空。

回答

1

嘗試添加AutoIncrement屬性ID屬性:

class Person 
{ 
    [PrimaryKey, AutoIncrement, Unique] 
    public int ID { get; set; } 
    public String personName { get; set; } 
    public int photoId { get; set; } 
} 
+0

如果我使用自動增加註釋,會發生在我嘗試用自己的主鍵來插入數據是什麼? –

+0

您應該可以在不指定ID屬性的情況下添加新記錄,並且數據庫將自動生成唯一的ID。 –

+0

我打算問,如果我指定主鍵,主鍵的哪個值將被添加。我指定的那個還是註釋生成的那個? –

相關問題