質問

私は亜音速の3のソースを変更するには時間を投資する前に

、私はシンプルな何かが欠けてるかどうかを確認するように依頼考え出します。

これは、SQLiteのインメモリデータベースに移行して亜音速の3リポジトリを使用することは可能ですか?私は接続がのが閉じて取得するときにインメモリのSQLiteデータベースが消えないようにオープンな接続を維持するためにDbDataProviderを強制する方法を見つけることができませんでした。

私がしようとしていた接続文字列でのユニットテストがある...

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の「共有接続」を設定しようとしたが、接続がまだ閉じように見えます。

でない場合は、私は亜音速のソースを更新し、変更を提出します。

ありがとうございます。

役に立ちましたか?

解決

興味深い - いいえ、私は多分、静的IDataProviderを作成するよりも、この他を行うと考えることができる方法はありませんが、それでも私たちは、スカラーのetcを実行するようなものを行うための接続を閉じる

。 すべての実行は、それを通過 -

私はあなたが必要とするようなものを設定し、その後IDataProviderを実装することにより、このようなものを作成することができスポーズ。しかし、これは我々が明示的に呼び出し元のコードで物事をシャットダウンした場合、私は疑問に思う作っている - 。うーん...私の部分に悪いデザインになります\

この機能を持っているのが大好きだ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top