123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- using FluentNHibernate.Cfg;
- using FluentNHibernate.Cfg.Db;
- using NHibernate;
- using NHibernate.Cfg;
- using NHibernate.Tool.hbm2ddl;
- namespace WhiteNoise.Domain.NHibernate
- {
-
-
-
- public class NHibernateConfiguration
- {
-
-
-
- private readonly string connectionString;
-
-
-
-
- private readonly string provider;
-
-
-
-
-
-
-
-
-
-
- public NHibernateConfiguration(string connectionString, string provider)
- {
- this.connectionString = connectionString;
- this.provider = provider;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- public static IPersistenceConfigurer CreateDatabaseConfiguration(string connectionString, string provider)
- {
- switch (provider)
- {
- case "MsSql2008":
- case "System.Data.SqlClient":
- return MsSqlConfiguration.MsSql2008
- .ConnectionString(connectionString).ShowSql();
-
- case "Firebird":
- return new FirebirdConfiguration()
- .ConnectionString(connectionString);
-
- case "MySql":
- return MySQLConfiguration.Standard
- .ConnectionString(connectionString);
-
- case "MsSqlCe":
- return MsSqlCeConfiguration.Standard
- .ConnectionString(connectionString);
-
- case "SQLite":
- return SQLiteConfiguration.Standard
- .ConnectionString(connectionString);
-
- case "JetDriver":
- return JetDriverConfiguration.Standard
- .ConnectionString(connectionString);
-
- case "PostgreSQL":
- return PostgreSQLConfiguration.Standard
- .Raw("hbm2ddl.keywords","none")
- .ConnectionString(connectionString);
-
- default:
- return MsSqlConfiguration.MsSql2008
- .ConnectionString(connectionString);
- }
- }
-
-
-
-
-
-
-
- public ISessionFactory CreateSessionFactory()
- {
- Configuration configuration = Fluently.Configure()
- .Database(CreateDatabaseConfiguration(this.connectionString, this.provider))
- .Mappings(m => m.FluentMappings.AddFromAssemblyOf<NHibernateConfiguration>())
- .BuildConfiguration();
-
-
- new SchemaUpdate(configuration).Execute(true, true);
-
- return configuration.BuildSessionFactory();
- }
- }
- }
|