C# 在Nhibernate中从无到有创建架构

C# 在Nhibernate中从无到有创建架构,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我想自动创建模式,如果不存在的话。目前,我使用以下代码创建架构: new SchemaExport(_configuration) .SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true); 但我有两个问题: 1) 它需要有一个空的模式才能工作。我希望它为自己创建一个空的模式和用户,如果我给它一次管理员凭据的话 2) 我希望它只在模式为空或过时时创建模式。能让nhibernate检查一下吗?当然,对

我想自动创建模式,如果不存在的话。目前,我使用以下代码创建架构:

new SchemaExport(_configuration)
           .SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true);
但我有两个问题:

1) 它需要有一个空的模式才能工作。我希望它为自己创建一个空的模式和用户,如果我给它一次管理员凭据的话

2) 我希望它只在模式为空或过时时创建模式。能让nhibernate检查一下吗?当然,对于过时的模式,我需要一种方法来询问用户是否要重新生成模式和松散的数据

我使用的是MySQL5,但我希望这不需要绑定到具体的数据库提供者就可以实现

更新:用户只需安装MySql,并在安装时输入一些管理员凭据。之后,他可以运行我的应用程序,它应该通过向用户询问管理员凭据来创建自己的模式、用户和分配权限。

我回答了一个相当复杂的问题

您必须自己检查数据库是否为空,并在必要时创建它。还有一个ValidateSchema方法来检查模式是否对应于实际的映射定义。其他一切都是您自己的代码

用户和权限也可以像在映射文件中一样安装