微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 是否可以使用SQLite.Net-PCL创建内存数据库?

目前,我正在使用sqlite.Net-PCL 3.1.1开发Xamarin MvvmCross应用程序的单元测试.单元测试项目是一个普通的.NET项目.

所以现在我在嘲笑MvxsqliteConnectionFactoryBase

public class MockMvxsqliteConnectionFactoryBase :  MvxsqliteConnectionFactoryBase
{
    #region implemented abstract members of MvxsqliteConnectionFactoryBase

    public override string GetPlattformDatabasePath(string databaseName)
    {
        return "Data Source=:memory:";
    }

    public override IsqlitePlatform GetCurrentPlatform()
    {
        return new sqlite.Net.Platform.Generic.sqlitePlatformGeneric(); 
    }
    public override IsqlitePlatform GetCurrentPlatform(string key)
    {
        return new  sqlite.Net.Platform.Generic.sqlitePlatformGeneric();
    }

    #endregion
}

但是数据库不是在内存中创建的,而是在项目的bin文件夹中创建的.

我试图像这个example一样初始化sqliteConnection,但是没有一个构造函数只接受一个字符串.

解决方法

按照@CL的提示.给了我改变方法GetPlattformDatabasePath:

public override string GetPlattformDatabasePath(string databaseName)
    {
        return ":memory:";
    }

现在我没有在bin文件夹中看到要创建的内容,并且在每次单元测试运行后都不需要删除数据,因此数据库必须在内存中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐