将int列映射到nhibernate中的bool属性的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将int列映射到nhibernate中的bool属性的问题相关的知识,希望对你有一定的参考价值。
我在域对象中有一个int列映射为布尔类型。一切都看起来很好,直到今天我们注意到在bool属性上做QueryOver
时,生成的实际SQL不符合SqlServer的喜好。
queryOver如下所示:
.Where(Restrictions.On<OrderLine>(ol => _orderLineAlias.Approved).IsLike(true));
那个SQL是,
select * from Orderline where Approved like 'true'
希望你能在这里看到问题,因为列的数据类型是int,这不会给我任何回报。不能更改DB数据类型或Entity类的数据类型。
答案
你有没有尝试过:
QueryOver<OrderLine>().Where(x => x.Approved == true)
?
另一答案
您是否在配置文件中尝试了以下几行?
<property name="hibernate.query.substitutions">true 1, false 0</property>
Link to NH documentation on this topic
以上是关于将int列映射到nhibernate中的bool属性的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何通过代码将 Id 映射到 NHibernate 映射中的私有支持字段?