我有表“mytable”,其中列“myValue”的值为null。
我有NHibernate调用Sybase存储过程的应用程序。 在程序中,我有一个Case语句,我检查一个值为null。
选择Case myValue 当null时 0 其他 1 结束为newValue 来自mytable
当我在数据库工具中执行此过程时,输出为0。 当我运行我的应用程序时,NHibernate执行此过程并输出1。
现在,当我将存储过程中的Case语句更改为 选择案例 当myValue为null时 0 其他 1 结束为newValue 来自mytable
现在,当我运行我的应用程序时,Nhibernate执行此过程并输出0。 看起来在存储过程中更改SQL对NHibernate来说很重要。
答案 0 :(得分:0)
我们想通了,根本不是NHibernate ..
我们的(新的)数据库驱动程序不支持“case null:”,“@ var!= null”或“@var = null”我们必须使用“@var is not null”,“@ var是“null”,或者在'SET ANSINULL OFF'之前添加我们的sql