0
在我投入時間修改SubSonic 3源代碼之前,我想我會問我是否缺少一些簡單的東西。SubSonic 3 Repository - SQLite In-Memory
是否可以使用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);
}
}
}
我嘗試設置在IDataProvider「共享連接」,但連接似乎仍然關閉。
如果不是,我將更新SubSonic源代碼並提交更改。
謝謝!
嗨,羅布。謝謝(你的)信息。我在執行過程中做了一些跟蹤,並在幾個地方調用了Close和Dispose。我將在IDataProvider上實現一個名爲bool IsSqlLiteMemoryDb()的擴展方法,該方法將檢查連接類型和:memory:在連接字符串中並覆蓋disposes/closes。代碼應該在哪裏發佈? – 2009-12-01 18:40:38
另外,只需注意,我能夠通過測試,但'hackishly'。我將重構代碼併發布。讓我知道在哪裏。謝謝。 – 2009-12-01 18:44:07
我會在這裏假設?:http://github.com/subsonic/SubSonic-3.0 – Mike 2009-12-02 15:34:00