加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:31:28 所属栏目:百科 来源:网络整理
导读:目前,我正在使用SQLite.Net-PCL 3.1.1开发Xamarin MvvmCross应用程序的单元测试.单元测试项目是一个普通的.NET项目. 所以现在我在嘲笑MvxSqliteConnectionFactoryBase public class MockMvxSqliteConnectionFactoryBase : MvxSqliteConnectionFactoryBase{ #
目前,我正在使用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文件夹中看到要创建的内容,并且在每次单元测试运行后都不需要删除数据,因此数据库必须在内存中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读