代码看起来不错:
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
}
我很快就会为此发布一个完整的 repo 和 N+1 视频——与此同时,我在 Evolve 做的演示在https://github.com/slodge/DemoFromEvolve——就 nuget 包而言它有点过时了,但是DataService.cs中的 SQLite 代码是最新的。