将int列映射到nhibernate中的bool属性的问题

时间:2011-08-10 09:46:19

标签: nhibernate int boolean sql-like

我在域对象中将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类的数据类型。

2 个答案:

答案 0 :(得分:3)

你试过了吗?

    QueryOver<OrderLine>().Where(x => x.Approved == true)

答案 1 :(得分:0)

您是否在配置文件中尝试了以下几行?

<property name="hibernate.query.substitutions">true 1, false 0</property> 

Link to NH documentation on this topic