0

NHibernate SchemaExport メソッドをどこに配置すればよいですか? また、データベースを再作成する場合はどのように呼び出す必要がありますか?

これをスタートアップ プロジェクト (asp.net mvc プロジェクト) に残す必要がありますか? スキーマをエクスポートするためだけに別のコンソール プロジェクトを作成する必要がありますか?

これらの質問はすべて、Web アプリが起動するたびにスキーマのエクスポートを実行したくないという事実から生じていると思います。

それが違いを生む場合、流暢なnhibernateを使用しています。

4

3 に答える 3

2

これを別のアセンブリに分解します。その後、さまざまな場所 (コンソール アプリ、統合テストのセットアップ、インストーラーなど) からこれを使用できます。

于 2010-08-18T19:32:11.710 に答える
1

個人的には、2つのテスト(この場合は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 に答える
1

アイデアとして、オプションでコマンドライン引数を取る ProjectInstaller に配置できます。したがって、そのためだけに追加のコンソール アプリを用意する必要はありません。

于 2010-08-18T18:51:03.203 に答える