2013-06-20 17 views
5

Odziedziczyłem aplikację MVC .NET 2008, która używa nhibernate. Poprzedni programista nie uzyskał nawet bazy danych dla tego projektu. Jestem dość nowy w nhibernate i próbuję dowiedzieć się, jakie byłoby optymalne rozwiązanie do tworzenia skryptu bazy danych do tworzenia nowej bazy danych przy użyciu bieżących mapowań. Przeszedłem wiele postów na tej stronie, ale nadal nie rozumiem całkowicie, jak to działa. Wszelkie wskazówki są mile widziane.Generowanie skryptu schematu bazy danych z NHibernate

Dziękujemy!

Odpowiedz

6

Zakładając masz mapowania hbm.xml i poprawny plik konfiguracyjny NHibernate, można napisać następujący kod w app konsoli do generowania schematu SQL:

//load initial config from hibernate config file 
Configuration cfg = new Configuration().Configure("hibernate.cfg.xml"); 

//add assembly in which the hbm.xml mappings are embedded (assuming Product class is in this assembly) 
cfg.AddAssembly(typeof(Product).Assembly); 

//this will generate the SQL schema file in the executable folder 
new SchemaExport(cfg).SetOutputFile("schema.sql").Execute(true, false, false); 

Jeśli masz biegle mapowań, powinno to wyglądać więcej tak:

Fluently.Configure().Database(MsSqlConfiguration.MsSql2005).Mappings(
      m => m.FluentMappings.AddFromAssemblyOf<Product>()).ExposeConfiguration(
       config => 
        { 
         new SchemaExport(config).SetOutputFile("schema.sql").Execute(true, false, false); 
        }).BuildConfiguration(); 
+0

Dzięki! Mam płynne odwzorowania. Kiedy mówisz, napisz kod w aplikacji konsoli, jak podłączyć tę konsolę do mojego rozwiązania? Jeszcze raz dziękuję za to! – ssokol91

+2

Zasadniczo, dodaj nowy projekt "Aplikacja konsoli" do istniejącego rozwiązania studia wizualnego. Możesz też dodać tę wiązkę kodu podczas uruchamiania istniejącej aplikacji lub zdarzenia, gdziekolwiek chcesz. – Bredstik

+0

To świetnie! Zauważyłem linię "AddFromAssemblyOf ". Czy muszę to robić dla każdej zmapowanej klasy, czy też nie rozumiem tego poprawnie? Tks! – ssokol91

Powiązane problemy