2009-08-10 59 views
2

这里是我的配置:如何配置FluentNHibernate不覆盖现有的SQLite数据库文件?

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

BuildSchema看起来是这样的:

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

幸运的是这伟大工程,创建一个名为foo.db,而我可以读取和写入文件。不幸的是,每次运行这段代码时,foo.db都会被覆盖。我如何配置(流利)NHibernate创建文件,只有当它不存在?

回答

8

把一个if语句放到你的BuildSchema中?

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