3

初めての MvvmCross アプリケーションを開発しています。SQLite を使用してアプリの設定を保存しようとしていますが、いくつかの例外が発生し、何か不足しているのではないかと心配しています。誰かが MvvmCross SQLite の使い方を教えてくれることを願っています。

アプリの起動時に、SQLite からアプリの設定を取得したいと考えています。私が試したのは、 var connection = factory.Create("myAppDB"); です。接続を返します。Get(1);

アプリが初めて起動されたときに AppSettings テーブルが存在しないため、この時点で例外が発生します。

次のようにテーブルを作成しようとすると:

var connection = factory.Create("myAppDB");
connection.CreateTable<AppSettings>();

次の例外が発生します。

何か助けはありますか?ありがとう

4

1 に答える 1

0

コードはよさそうです:

 var connection = factory.Create("mydb.sq;");
 connection.CreateTable<TableType>();

System.NotSupportedException: Don't know about Cirrious.MvvmCross.ViewModels.MvxRequestedByあなたが投稿したSQLiteコードとは何の関係もないと思います。起動コードの他の部分から来ていると思われます。

それが役立つ場合、私の標準的な SQLite サンプル コードは次のようになります。

public class Kitten
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string Name { get; set; }
    public int Price { get; set; }
    public string ImageUrl { get; set; }
}

public class DataService
{
    private readonly ISQLiteConnection _connection;

    public DataService(ISQLiteConnectionFactory factory)
    {
        _connection = factory.Create("kittens.sql");
        _connection.CreateTable<Kitten>();
    }

    public List<Kitten> KittensMatching(string nameFilter)
    {
        return _connection.Table<Kitten>()
                    .OrderBy(x => x.Price)
                    .Where(x => x.Name.Contains(nameFilter))
                    .ToList();
    }

    // other db methods
}

これについては、すぐに完全なレポと N+1 ビデオを投稿します。それまでの間、私が Evolve で行ったデモはhttps://github.com/slodge/DemoFromEvolveにあります。nuget パッケージに関しては少し古くなっていますが、DataService.csの SQLite コードは最新です。

于 2013-05-04T06:26:05.693 に答える