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″ />
12345678910111213141516171819public
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();
}