Можно ли создать базу данных в памяти с помощью SQLite.Net-PCL?

В настоящее время я работаю над модульными тестами для приложения Xamarin MvvmCross с использованием SQLite.Net-PCL 3.1.1. Проект модульного тестирования - это обычный проект.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 папка проекта.

Я пытался инициализировать SQLiteConnection как в этом примере, но нет конструктора, который принимает только одну строку.

1 ответ

Решение

Следуя подсказке, что @CL. дал мне я изменил метод GetPlattformDatabasePath:

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

Теперь я не вижу, чтобы что-то создавалось в папке bin, и нет необходимости удалять существующие данные после каждого запуска модульного теста, поэтому база данных должна находиться в памяти.

Другие вопросы по тегам