我在域对象中将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类的数据类型。
答案 0 :(得分:3)
你试过了吗?
QueryOver<OrderLine>().Where(x => x.Approved == true)
答案 1 :(得分:0)
您是否在配置文件中尝试了以下几行?
<property name="hibernate.query.substitutions">true 1, false 0</property>