我正在开发我的第一个MvvmCross应用程序。我正在尝试使用SQLite存储应用程序设置,但我遇到了一些例外情况,我担心我会遗漏一些东西。希望有人可以指导我使用MvvmCross SQLite。
在应用启动时,我想从SQLite中检索应用设置。我尝试的是: var connection = factory.Create(“myAppDB”); return connection.Get(1);
此时我收到异常,因为第一次启动应用时,AppSettings表不存在。
如果我尝试用:
创建表格var connection = factory.Create("myAppDB");
connection.CreateTable<AppSettings>();
我得到了下一个例外: “System.NotSupportedException:不知道Cirrious.MvvmCross.ViewModels.MvxRequestedBy”
有任何帮助吗?感谢
答案 0 :(得分: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包方面略有过时但是SQLite代码在DataService.cs中是最新的。