这有效
var a = Session.Query<CaptureHistory>()
但这不起作用并抛出ADOException。
var a = Session.Query<CaptureHistory>().Where(c => c.CaptureName == "");
异常
“准备选择capturehis0_.CaptureCode为CaptureC1_2_时,将capturehis0_.CaptureName捕获为CaptureT4_2_,来自CaptureHistory capturehis0_,其中capturehis0_.CaptureName =?发生错误”}
的InnerException
“OleDbCommand.Prepare方法要求所有可变长度参数都有明确设置的非零大小。”
字段CaptureName的Hibernate映射
<property name="CaptureType" column="CaptureName" type="String"/>
答案 0 :(得分:1)
首先,您使用的是哪个数据库,是否真的需要使用OleDb?如果您有MSAccess,请获取NHibernate.JetDriver
包,例如......
如果您必须使用ole db,可以尝试通过将prepare_sql
设置为false
来禁用命令准备
<property name="prepare_sql">false</property>