【发布时间】:2011-08-10 09:46:18
【问题描述】:
我有一个 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 数据类型或实体类的数据类型不是一种选择。
【问题讨论】:
-
是时候回去改变你的数据库模型了。你为什么要让它们保持不同
-
嘿..好主意..但不会工作,因为有很多依赖于此的遗留逻辑。
-
旧代码反对您的 dB.. 嗯..
-
IsLike带整数???字符串只有一个like。 -
@Stefan,我正在修改其他人编写的这段代码,并认为它做错了。感谢您指出这一点:)
标签: nhibernate int boolean sql-like