2016-04-17 14 views
0

私は主なデータソースとしてSQliteを使用するXamarinを使用してAndroidアプリを構築しています。私は、オブジェクトをデータベースに挿入するという考え方に頭をはくすのが難しいです。主キーに言及せずにオブジェクトを挿入しようとすると、「Constraint」エラーメッセージが表示されます。例えばプライマリキーを指定せずに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})データ挿入を行う場合は成功するでしょう。プライマリキーを指定せずにプライマリキーをnullにできないようにするには、どうすればデータを挿入できますか? IDプロパティにAutoIncrement属性を追加

答えて

1

試してみてください。

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

プライマリキーを指定すると、プライマリキーのどの値が追加されるのかという質問がありました。私が指定したものか、注釈によって生成されたものか? –

関連する問題