Scripting the database

It's usually not appropriate for your application to recreate database tables each time it runs. In this recipe, we'll generate a SQL script to create your database objects.

Getting ready

Complete the Configuring NHibernate with App.config or Web.config recipe at the beginning of this chapter.

Note

This recipe works for any RDBMS supported by NHibernate. To use a different system, adjust your connection string and dialect accordingly.

How to do it...

  1. Open Program.cs.
  2. Add these using statements to the beginning of the file:
    using Eg.Core;
    using NHibernate.Mapping.ByCode; 
    using NHibernate.Tool.hbm2ddl;
  3. Modify the Main method to look similar to this:
    var nhConfig = new Configuration().Configure();
    var mapper = new ConventionModelMapper();
    nhConfig.AddMapping(mapper.CompileMappingFor(new[] { typeof(TestClass) }));
    
    var schemaExport = new SchemaExport(nhConfig);
    schemaExport
        .SetOutputFile(@"db.sql")
        .Execute(false, false, false);
    
    Console.WriteLine("An sql file has been generated at {0}",
                      Path.GetFullPath("db.sql"));
    Console.ReadKey();
  4. Build and run your application.
  5. Inspect the newly created db.sql file.

How it works...

Using the mapping metadata from the configuration object and the current dialect, hbm2ddl builds a SQL script for your entities.

See also

  • Configuring NHibernate with App.config
  • Configuring NHibernate with hibernate.cfg.xml
  • Configuring NHibernate with code
  • Configuring NHibernate with Fluent NHibernate
  • Generating the database
  • Updating the database
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.15.245.1