我通过调用UpdateBaseFiles成功地让Fluent NHibernate更新我的数据库:
Public Sub UpdateBaseFiles()
Dim db As SQLiteConfiguration
db = SQLiteConfiguration.Standard.UsingFile(BASE_DBNAME)
Fluently.Configure() _
.Database(db) _
.Mappings(Function(m) m.FluentMappings.AddFromAssemblyOf(Of FluentMap)()) _
.ExposeConfiguration(AddressOf UpdateSchema) _
.BuildConfiguration()
End Sub
Private Sub UpdateSchema(ByVal Config As Configuration)
Dim SchemaUpdater As New SchemaUpdate(Config)
SchemaUpdater.Execute(True, True)
End Sub
如何将DDL输出到文件,我在最初使用以下方法创建模式时执行此操作:
Private Sub BuildSchema(ByVal Config As Configuration)
Dim SchemaExporter As New SchemaExport(Config)
SchemaExporter.SetOutputFile("schema.sql")
SchemaExporter.Create(False, True)
End Sub
但SchemaUpdate没有SetOutputFile方法 .
2 回答
SchemaUpdate有一个重载,它接受一个
Action<string>
委托,您可以提供该委托来导出脚本 . 这是C#中的一个例子:我认为这会奏效 . 我无法测试它,因为SchemaUpdate是not working with SQLCE .
SchemaUpdate
为每次更新调用操作,因此您不希望在上面的每个命令上重新创建(并因此覆盖)相同的文件,这是必需的: