SubSonic 3 소스를 수정하는 데 시간을 투자하기 전에 뭔가 간단한 것이 누락되는지 확인해 보았습니다.SubSonic 3 저장소 - SQLite 인 메모리
SQLite In-Memory 데이터베이스에서 SubSonic 3 리포지토리를 마이그레이션 할 수 있습니까? DbDataProvider가 연결을 열어 두어 강제로 연결을 닫을 때 In-Memory SQLite 데이터베이스가 사라지지 않도록 할 수있는 방법을 찾지 못했습니다.
나는이 시도 된 연결 문자열을 가진 단위 테스트 ...
나는 IDataProvider의 "공유 연결"을 설정하려고했으나 연결이 계속 닫을 듯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);
}
}
}
.
그렇지 않은 경우, 음속 소스를 업데이트하고 변경 사항을 제출합니다.
감사합니다.
안녕 롭, - 그러나 이것은 우리가 명시 적으로 호출 코드에 물건을 종료하면 저를 궁금해하고있다. 정보 주셔서 감사합니다. 나는 실행에 대한 흔적을했고, Close와 Dispose를 몇 군데서 호출했습니다. bool IsSqlLiteMemoryDb()라는 IDataProvider에 확장 메서드를 구현하여 연결 형식을 확인하고 메모리 : 연결 문자열에서 disposes/closes를 재정의했습니다. 어디 코드를 게시해야합니까? –
참고로, 나는 테스트를 통과 할 수 있었지만 'hackishly'. 코드를 리팩토링하고 게시합니다. 어디 있는지 알려주세요. 감사. –
나는 여기에서 추정 할 것입니까? : http://github.com/subsonic/SubSonic-3.0 – Mike