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...
- Open
Program.cs
. - Add these
using
statements to the beginning of the file:using Eg.Core; using NHibernate.Mapping.ByCode; using NHibernate.Tool.hbm2ddl;
- 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();
- Build and run your application.
- 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