我正在使用流畅的nHibernate将数据库标志列“Y”/“N”映射到bool
属性:
Map(x => x.Enabled).Column("ENABLED_FLAG").CustomType("YesNo");
问题是,如何指定如何映射null?将null映射到true,false,exception?
默认设置似乎将NULL映射为false。我喜欢这样,但仍然想知道我怎么能覆盖它才是真的?
答案 0 :(得分:2)
如果要允许空值,请创建字段bool?
,它也将在数据库中为空。
答案 1 :(得分:1)
如果要更改null case的功能,则必须创建自己的自定义类型 - 主要来自IUserType。
我做了类似于日期的事情(其中0-01日期01-01-0001不能保存到mssql)和Guids我们要插入null而不是Guid.Empty)
创建自己的用户类型可以覆盖NullSafeSet和NullSafeGet方法 - 这就是你想要做的(在读或写时改变Null的处理) 您甚至可以从原始的YesNo Type
继承