Frage

Bevor ich die Zeit in die Änderung der SubSonic 3 -Quelle investiere, stellte ich mir vor, ich frage zu sehen, ob mir etwas Einfaches fehlt.

Ist es möglich, das SubSonic 3-Repository mit Migrationen in einer SQLite-In-Memory-Datenbank zu verwenden? Ich konnte keinen Weg finden, den dbdataprovider zu zwingen, die Verbindung offen zu halten, sodass die SQLite-Datenbank in Memory nicht verschwindet, wenn die Verbindung geschlossen wird.

Der Unit -Test mit der Verbindungszeichenfolge, die ich ausprobiert habe, ist ...

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);
        }
    }
}

Ich habe versucht, die "gemeinsam genutzte Verbindung" auf den Idataprovider festzulegen, aber die Verbindung schien immer noch zu schließen.

Wenn nicht, werde ich die Unterschallquelle aktualisieren und die Änderungen einreichen.

Vielen Dank!

War es hilfreich?

Lösung

Interessant - nein, es gibt keine Möglichkeit, dass ich mir dies nicht vorstellen kann, außer vielleicht einen statischen idataprovider zu erstellen, aber selbst dann schließen wir die Verbindung, um Dinge wie die Ausführung von Scalars etc. zu tun.

Ich spreche aus, dass Sie so etwas erstellen können, indem Sie den Idataprovider implementieren und dann die Dinge so einrichten, wie Sie es benötigen - die gesamte Ausführung durchläuft ihn. Aber das lässt mich fragen, ob wir die Dinge im Anrufcode ausdrücklich abschalten - was für mich ein schlechtes Design wäre ... hmmm.

Würde gerne dieses Feature haben ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top