我有以下代码:
private static ISessionFactory CreateSessionFactory()
{
ISessionFactory factory = null;
var cfg = new Configuration();
// Do this to map bool true/false to DB2 char('0') or char('1')
var props = new Dictionary<string, string>();
props.Add("query.substitutions","true=1;false=0");
cfg.AddProperties(props);
cfg.DataBaseIntegration(x =>
{
x.ConnectionString = CONNECTION_STRING;
x.Dialect<DB2400Dialect>();
x.Driver<DB2400Driver>();
});
factory = Fluently.Configure(cfg)
.Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
.BuildSessionFactory();
return factory;
}
在我的 POCO 中,我有以下财产:
public virtual bool QCCount { get; set; }
在我的映射中,我有
Map(x => x.QCCount, "QCNT36");
在 DB2 中,没有位字段,只有带有 '0' 或 '1' 的 char(1)。
据我了解, props.Add("query.substitutions","true=1;false=0"); 应该将这些 0 和 1 映射到布尔 POCO 对象,但是,它似乎不起作用。
我是否需要在字段的映射中添加一些东西来告诉它使用它?