gpt4 book ai didi

nhibernate - 使 Fluent NHibernate 输出模式更新到文件

转载 作者:行者123 更新时间:2023-12-04 00:43:17 25 4
gpt4 key购买 nike

我通过调用 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 方法。

最佳答案

SchemaUpdate 有一个接受 Action<string> 的重载。您可以提供以导出脚本的委托(delegate)。这是 C# 中的一个示例:

Action<string> updateExport = x =>
{
using (var file = new FileStream(path, FileMode.Create, FileAccess.Append))
using (var sw = new StreamWriter(file))
{
sw.Write(x);
}
};
new SchemaUpdate(config).Execute(updateExport, false);

我认为这会奏效。我无法测试它,因为 SchemaUpdate 是 not working with SQLCE .

关于nhibernate - 使 Fluent NHibernate 输出模式更新到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com