2014-01-15 52 views
1

這工作當使用其中具有NHinernate實體異常情況發生

var a = Session.Query<CaptureHistory>() 

但是這是行不通的,扔ADOException。

var a = Session.Query<CaptureHistory>().Where(c => c.CaptureName == ""); 

異常

「雖然從CaptureHistory capturehis0_製備選擇capturehis0_.CaptureCode如CaptureC1_2_,capturehis0_.CaptureName如CaptureT4_2_其中capturehis0_.CaptureName =?發生錯誤」}

的InnerException

「OleDbCommand.Prepare方法要求所有可變長度參數具有明確設置的非零大小」。

Hibernate映射現場CaptureName

<property name="CaptureType" column="CaptureName" type="String"/> 

回答

1

首先,這是您使用的數據庫和你真的需要使用OleDb的?如果你有MSACCESS,得到NHibernate.JetDriver包例如...

如果必須使用OLE DB,也許嘗試通過設置prepare_sqlfalse

<property name="prepare_sql">false</property> 
+0

由於禁用指令生成,它的工作原理時prepare_sql集假。我已經這樣做了,但是我在hibernate.cfg.xml中做了修改,但是hibernate-configuration部分也存在於app.config中。這就是爲什麼它不起作用。 – Sameer

相關問題