c# - 从无到有在 Nhibernate 中创建模式

标签 c# nhibernate fluent-nhibernate

我想自动创建架构(如果不存在)。目前我使用此代码来创建架构:

new SchemaExport(_configuration)
           .SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true);

但我有两个问题:

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

2)我希望它仅在模式为空或已过时时创建模式。是否可以让 nhibernate 检查这一点?当然,如果架构过时,我需要一种方法来询问用户是否重新生成架构和松散数据。

我正在使用 MySql 5,但我希望这可以在不绑定(bind)到具体数据库提供程序的情况下实现。

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

最佳答案

我回答得很similar question here .

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

用户和权限也可以安装为 DatabaseObjects在映射文件中。

关于c# - 从无到有在 Nhibernate 中创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314594/

相关文章:

c# - C#中如何在两个字符串中查找相似的单词

performance - 读取大包时 NHibernate 变慢

c# - NHibernate 不保存复合数据实体

c# - ASP.Net MVC & NHibernate Burrow & Fluent NHibernate

fluent-nhibernate - Fluent NHibernate 1.0 RTM 和 Visual Studio 2010 beta 2 的引用错误

nhibernate - 使用 Fluent NHibernate 使用两个非 FK 列连接到表

c# - 按钮内容的 If 语句。 WPF

c# - 如何连接到写在 web 服务的 web.config 中的连接字符串

c# - iLMerge 企业库 5.0

nhibernate - Fluent Nhibernate 删除不规则性