NHibernate: boolean kezelés MSSQL alatt
You are Reading..
NHibernate: boolean kezelés MSSQL alatt
Az MSSQL nem szereti a boolean mezőt. Minden esetben BIT típusú mezőt hoz létre. De ha én egy Criteria -t hozok létre, ahol boolean típusú értéket szeretnék beadni, felháborodottan közli, hogy ezt Ő nem tudja értelmezni!
Mi ilyenkor a teendő? Az NHibernate -et meg kell tanítani arra, hogy jól kezelje:
A megoldás az NHibernate Configuration osztályának létrehozásakor (vagy a konfigurációs file -ba) be kell csempészni a következőt:
<add key=”hibernate.query.substitutions” value=”true 1, false 0″ />
public ISessionFactory MSSQLBuildSessionFactory() { NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration(); Dictionary<string, string> props = new Dictionary<string, string>(); String connectionString = String.Format("Data Source={0};Initial Catalog={1};User Id={2};Password={3}", _serverName, _dataBase, _userName, _password); props.Add(Environment.ConnectionDriver, typeof(SqlClientDriver).FullName); props.Add(Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect"); props.Add(Environment.ConnectionProvider, typeof(DriverConnectionProvider).FullName); props.Add(Environment.ConnectionString, connectionString); props.Add(Environment.ShowSql, _showSQL.ToString()); props.Add(Environment.ProxyFactoryFactoryClass, typeof(NHibernate.Bytecode.DefaultProxyFactoryFactory).AssemblyQualifiedName); //A lényeg!! props.Add("hibernate.query.substitutions", "true 1, false 0"); cfg.AddProperties(props); OnFlowConfigurationHelper.ApplyConfiguration(cfg); OnFlowCustomConfigurationHelper.ApplyCustomConfiguration(cfg); return cfg.BuildSessionFactory(); }