Domanda

Prima di investire il tempo nel modificare la fonte SubSonic 3, ho pensato che chiedo di vedere se mi manca qualcosa di semplice.

E 'possibile utilizzare il repository SubSonic 3 con migrazioni su uno SQLite database in memoria? Non riuscivo a trovare un modo per forzare la DbDataProvider per mantenere la connessione aperta in modo che il database in memoria SQLite non svanisce quando la connessione ottiene chiusa.

Il test di unità con la stringa di connessione che stavo cercando è ...

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

Ho provato a fissare la "connessione condivisa" sul IDataProvider, ma la connessione ancora sembrava a chiudere.

In caso contrario, io aggiornare la fonte SubSonic, e inviare le modifiche.

Grazie!

È stato utile?

Soluzione

Interessante -. Non c'è nessun modo che io possa pensare di fare questo tranne forse la creazione di un IDataProvider statica ma anche allora abbiamo chiudere la connessione per fare le cose, come l'esecuzione di scalare etc

I spose si potrebbe creare una cosa del genere per l'attuazione del IDataProvider quindi impostando le cose di cui hai bisogno - tutta l'esecuzione passa attraverso di esso. Ma questo mi sta facendo chiedo se abbiamo chiuso in modo esplicito le cose nel codice chiamante -. Che sarebbe una cattiva progettazione da parte mia ... hmmm \

Mi piacerebbe avere questa funzione ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top