Прежде чем тратить время на изменение источника SubSonic 3, я решил спросить, не упустил ли я что-то простое.
Можно ли использовать хранилище SubSonic 3 с миграциями в базе данных SQLite In-Memory? Я не смог найти способ заставить DbDataProvider держать соединение открытым, чтобы база данных SQLite в памяти не исчезала при закрытии соединения.
Модульный тест со строкой подключения, которую я пробовал, это ...
public class SQLite_InMemory_SimpleRepositoryTests
{
public class Job
{
public Guid JobId { get; set; }
public string JobName { get; set; }
}
[Fact]
public void SQLite_InMemory_SimpleRepo_CanStayOpen()
{
IDataProvider provider = ProviderFactory.GetProvider("Data Source=:memory:;Version=3;New=True;Pooling=True;Max Pool Size=1;", "System.Data.SQLite");
IRepository repository = new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations);
for (int i = 0; i < 10000; i++)
{
var job = new Job {JobId = Guid.NewGuid(), JobName = "Job_"+i};
repository.Add(job);
}
}
}
Я попытался установить «Shared Connection» на IDataProvider, но соединение все еще закрывалось.
Если нет, я обновлю источник SubSonic и отправлю изменения.
Спасибо!