Frage

Wo soll ich meine NHibernate Schema Methode setzen und wie soll ich es nennen, wenn ich entscheiden, die Datenbank neu erstellen?

Soll ich dies in meinem Startprojekt (ein asp.net MVC-Projekt)? Soll ich ein separates Konsole-Projekt nur für den Export meines Schemas erstellen?

Ich denke, diese Fragen alle aus der Tatsache entstehen, dass ich nicht will, Schema exportiert jedes Mal, wenn das Web-App zu laufen beginnt.

Ich bin mit fließend nhibernate wenn das einen Unterschied macht.

War es hilfreich?

Lösung

würde ich dieses heraus in eine separate Baugruppe Faktor; Sie könnte dies dann aus einer Vielzahl von Orten verwenden (Konsolenanwendung, Integration Test-Setup, Installer, etc.).

Andere Tipps

Als Idee: Sie kann es in einem Project platzieren konnten, dass nimmt optional ein Befehlszeilenargument. Sie würden also keine zusätzliche Konsole App nur für das haben müssen.

Ich persönlich verwende zwei Tests (unter Verwendung von Nunit in diesem Fall) zu erstellen oder die Datenbank zu aktualisieren. In beiden Fällen erzeugen ich nur das Drehbuch, als ich die volle Kontrolle will, wann die Datenbank erstellt oder aktualisiert wird.

    [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);
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top