2009-08-10 2 views
2

Hier ist meine Konfiguration:Wie konfiguriere ich FluentNHibernate, um eine vorhandene SQLite-Datenbankdatei nicht zu überschreiben?

this.factory = Fluently.Configure(). 
    Database(SQLiteConfiguration.Standard.UsingFile("foo.db"). 
     ShowSql()). 
    Mappings(m => m.FluentMappings.AddFromAssemblyOf<Bar>()). 
    ExposeConfiguration(BuildSchema). 
    BuildSessionFactory(); 

BuildSchema wie folgt aussieht:

private static void BuildSchema(Configuration config) 
{ 
    new SchemaExport(config).Create(false, true); 
} 

Glücklicherweise funktioniert dies sehr gut und erzeugt eine Datei mit dem Namen foo.db, auf die ich lesen und schreiben kann. Unglücklicherweise wird foo.db jedes Mal, wenn ich diesen Code ausführe, überschrieben. Wie kann ich (fließend) NHibernate konfigurieren, um die Datei nur zu erstellen, wenn sie nicht bereits existiert?

Antwort

8

Setzen Sie eine if-Anweisung in Ihr BuildSchema?

if (!File.Exists("foo.db")) 
    new SchemaExport(config).Create(false, true);