1

Windows phone ユニバーサル アプリケーションで sqlite に sqlite-net を使用しています。テーブルと列の属性を持つクラスをフォローし、非同期接続を使用して sqlite にデータを追加しています。すべて正常に動作していますが、Id 列は自動インクリメントされておらず、プライマリでもありません。鍵。他の誰かがこの問題に直面していますか? 以下は私のコードです。

 [Table("Account")]
public class Account
{
    [PrimaryKey, AutoIncrement]
    [Column("Id")]
    public int Id { get; set; }

    [Column("FirstName")]
    public string FirstName { get; set; }

    [Column("LastName")]
    public string LastName { get; set; }

    [Ignore]
    public string FullName { get; set; }
  }


  SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection("database.sqlite");
        var result = await conn.CreateTableAsync<Account>();

        var _accountList = new Account();
        _accountList.FirstName = "Name 1";
        _accountList.LastName = "------------";
        var result1 = await conn.InsertAsync(_accountList);

        _accountList = new Account();
        _accountList.FirstName = "Name 2";
        _accountList.LastName = "------------";
         result1 = await conn.InsertAsync(_accountList);

         var list = await conn.Table<Account>().ToListAsync();

         var item = list;

テーブルの読み取り時、すべてのレコードで ID は常に 0 です。これを修正する方法はありますか?

4

3 に答える 3

0

同様の問題がありました。

シミュレーターをリセットしてみてください:

Step 1: Goto C:\Program Files (x86)\Microsoft XDE\8.1\
Step 2: Run XdeCleanup.exe

アプリを再実行します。

主キーと自動インクリメントなしでデータベースを作成し、それをコードに追加したため、私に起こりました。でもなぜかPK&AIなしの状態がシミュレーターにキャッシュされていました。

于 2015-05-27T10:06:14.460 に答える