MVVMCross社区SQLite-Net插件 - 无法打开数据库

时间:2014-09-25 20:22:40

标签: sqlite xamarin windows-phone-8.1 mvvmcross

我试图在Windows Phone 8.1上打开一个数据库文件(foo.db)。在使用SQLite-Net插件时,我得到了以下SQLiteException:无法打开数据库文件:foo.db(CannotOpen)。

以下是代码:

public Db(ISQLiteConnectionFactory factory)
{
    try
    {
        const string fileName = "foo.db";
        StorageFolder folder = ApplicationData.Current.LocalFolder;
        using(this.connection = factory.Create(Path.Combine(folder.Path, fileName)))
        {
            //Do SOME STUFF
        }
    }
    catch (Exception ex)
    {
        //SQLiteException: Could not open database file: foo.db (CannotOpen).
    }

}

我已经验证了该文件的路径。如果我删除社区插件并使用SQLite-net,则不会发生异常。

哪里出错?

感谢。

1 个答案:

答案 0 :(得分:0)

我不知道它是否有帮助,但这就是我如何处理这个问题。

我在PlatformSpecific项目中创建了ISQLiteConnection,并将其注册为IOC的类型:

Mvx.RegisterType<ISQLiteConnection>(() => new SQLiteConnection(fullPathtoDbFile));

然后,在我的核心(PCL)项目中,我正在解决它:

public ISQLiteConnection GetConnection()
{
    if (_con == null)
    {
        _con = Mvx.Resolve<ISQLiteConnection>(); ;
    }
    return _con;
}
  • ISQLiteConnection是Cirrious.MvvmCross.Community.Plugins.Sqlite名称空间的一部分。