Pregunta

Antes de invertir el tiempo en la modificación de la fuente SubSonic 3, pensé que pido para ver si me falta algo sencillo.

¿Es posible utilizar el Repositorio SubSonic 3 con las migraciones en un SQLite base de datos en memoria? No pude encontrar una manera de forzar la DbDataProvider para mantener la conexión abierta por lo que la base de datos en memoria SQLite no se anula cuando la conexión está cerrada llegar.

La prueba de la unidad con la cadena de conexión que estaba tratando es ...

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

He intentado establecer la "Conexión compartida" en la IDataProvider, pero la conexión todavía parecía cerrarse.

Si no es así, voy a actualizar la fuente subsónico, y enviar los cambios.

Gracias!

¿Fue útil?

Solución

- interesante. Hay no hay manera que puedo pensar para hacer esto que no sea tal vez la creación de un IDataProvider estática pero incluso entonces cerrar la conexión para hacer las cosas como la ejecución de escalar, etc.

Me spose podría crear tal cosa mediante la implementación del IDataProvider continuación establecimiento de las cosas que necesite - toda la ejecución pasa a través de él. Pero esto me pregunto si nos cerrar de forma explícita las cosas en el código de llamada -. Lo que sería un mal diseño de mi parte ... hmmm \

Me encantaría tener esta función ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top