2016-08-03 4 views
0
var path = System.IO.Path.Combine (App.DEVICE_LOCAL_FOLDER, "database.db3"); 
      _database = new SQLiteAsyncConnection (path); 
      _database.CreateTableAsync<Setting>().Wait(); 
      _database.CreateTableAsync<Authentication>().Wait(); 

このコードは、私のXamarin.Formsアプリのアプリの起動時に実行される、私のアプリが起動するたびに、私は「メッセージ 『重複したカラム名を取得:』 string」をsetting_id。私はデバッグデバイスを一から消して、重複したテーブルやそのようなものが作成されていないことを確認しました。私の「設定」モデルはこのように見えます。SQLiteのXamarin重複列IDを発行

using SQLite; 
namespace namespace 
{ 
    public class Setting 
    { 
     [PrimaryKey, AutoIncrement] 
     public int setting_id { get; set; } 
     public string field1 { get; set; } = 
      ""; 
     public string field2 { get; set; } = ""; 
     public string emailOne { get; set; } = ""; 
     public string emailTwo { get; set; } = ""; 
     public string field3 { get; set; } = ""; 
     public string field4 { get; set; } = ""; 
     public Setting() 
     { 

     } 
    } 
}  

Xamarin.Formsバージョン2.2.0.45およびsqlite-net-pclバージョン1.1.2を使用します。現在のところ、iOSでのみこれをテストしており、アプリの起動時に常にクラッシュし、Androidでテストしていません。解決策は、私のアセンブリは、すべてのリンクされていなかったことを確認したジェラルドVersluis、へ

+1

シミュレータをチェックしましたか?可能な解決策のための[このフォーラムの投稿](https://forums.xamarin.com/discussion/65328/sqlite-duplicate-column-name-exception-on-device-but-not-on-simulator)を参照してください –

+0

@GeraldVersluis私はそれが解決策かもしれないと思います、私は最近、私のアセンブリ設定として "Link All"を設定することを覚えています。私は確認して戻ってくる。ありがとうございました! –

答えて

2

おかげで、かつて「SDKアセンブリのみ、」問題が解決されたために、その後のリンク切り替えます。