首页 文章

使用NHibernate为 生产环境 生成模式的最佳实践

提问于
浏览
1

我现在准备使用NHibernate来保持我的数据层访问 . 我使用DDD直到那一点,我使用假的单位测试和测试网站 .

我知道我可以使用SchemaExport进行NHibernate具体存储库的单元/集成测试,但是如何生成用于测试站点的模式呢?

我应该在我的测试中创建一个特殊的类来创建模式并插入静态数据,还是应该在创建数据库时在网站启动时生成模式?

3 回答

  • 0

    我个人喜欢使用一个小型控制台应用程序,它加载所有映射并执行SchemaExport,如下所示:

    new SchemaExport(config).Execute(ddlScript => {
        using (var writer = new StreamWriter(fileName, true))
        {
            writer.Write(ddlScript);
            writer.Flush();
        }
    }, false, false);
    

    此控制台应用程序作为构建脚本的一个步骤运行,然后由WiX接收DDL脚本文件并包含在MSI包中(在安装时生成整个数据库) .

  • 0

    作为一个简单的场景,您可能会错过使用单元测试 . 只需创建名为 CreateSchema 的单元测试,它将执行schemaexport . 然后在运行其他测试之前运行它 .

    我有一个类似的问题here on STO

  • 3

    对于你的完整构建脚本,我会考虑Markus的建议,因为我只是运行你的单元测试

    <property name="hbm2ddl.auto">create-drop</property>

    在您测试项目的app配置中 - 每次运行所有测试时,这将删除并重新创建您的模式 . 每个单元测试都可以添加测试所需的数据 .

相关问题