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、へ
シミュレータをチェックしましたか?可能な解決策のための[このフォーラムの投稿](https://forums.xamarin.com/discussion/65328/sqlite-duplicate-column-name-exception-on-device-but-not-on-simulator)を参照してください –
@GeraldVersluis私はそれが解決策かもしれないと思います、私は最近、私のアセンブリ設定として "Link All"を設定することを覚えています。私は確認して戻ってくる。ありがとうございました! –