0

我应该把我的 NHibernate SchemaExport 方法放在哪里,当我决定重新创建数据库时应该如何调用它?

我应该把它留在我的启动项目(一个 asp.net mvc 项目)中吗?我应该创建一个单独的控制台项目来导出我的架构吗?

我认为这些问题都源于我不希望每次 Web 应用程序启动时都运行架构导出这一事实。

如果这有所作为,我正在使用流利的 nhibernate。

4

3 回答 3

2

我会将其分解为一个单独的程序集;然后,您可以从各种地方(控制台应用程序、集成测试设置、安装程序等)使用它。

于 2010-08-18T19:32:11.710 回答
1

作为一个想法:您可以将它放在一个可以选择接受命令行参数的 ProjectInstaller 中。因此,您不必为此拥有额外的控制台应用程序。

于 2010-08-18T18:51:03.203 回答
1

我个人使用两个测试(在这种情况下使用 Nunit)来创建或更新数据库。在这两种情况下,我只生成脚本,因为我想完全控制何时创建或更新数据库。

    [Test]
    [Ignore]
    public void Create_Database_Schema_From_MappingFiles()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var schema = new SchemaExport(cfg);

        schema.Create(true, false);
    }

    [Test]
    [Ignore]
    public void Update_an_existing_database_schema()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var update = new SchemaUpdate(cfg);
        update.Execute(true, false);
    }
于 2010-08-19T00:44:49.867 回答