我应该在哪里放置nhibernate schemaexport方法,当我决定重新创建数据库时该如何称呼它?

我应该将此留在我的启动项目(ASP.NET MVC项目)中吗?我应该创建一个仅仅用于导出我的模式的单独的控制台项目吗?

我认为这些问题都是源于我不想每次Web应用程序启动时架构导出的事实。

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

有帮助吗?

解决方案

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

其他提示

作为一个想法:您可以将其放在ProjectInstaller中,该Staller可以选择获取命令行参数。因此,您不必为此提供额外的控制台应用程序。

我个人使用两个测试(在这种情况下使用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);
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top