4
使用NHibernate 3.3.1.4000/.NET 3.5NHibernate LINQ:如果我重複調用,爲什麼查詢使用不正確的char值?
我有一個對象,我映射到現有的Oracle 10g數據庫:
public MyJob : LegacyOracleDbObjects {
public virtual int JobID { get; protected set; }
public virtual char Status { get; protected set; }
}
和映射:
public MyJobMap()
{
Table("JOB");
Id(x => x.JobID).Column("JOB_ID");
Map(x => x.Status).Column("STATUS");
}
而且一LINQ查詢:
char selected_status = 'W'
query = from job in query
where job.Status == selected_status
select job;
這工作正常第一次我ru ñ它,但如果我再嘗試運行查詢:
char selected_status = 'S'
query = from job in query
where job.Status == selected_status
select job;
NHibernate的仍然傳遞值「W」(即第一個狀態值)到數據庫查詢中。我檢查了傳入查詢的selected_status值,它看起來很好,但SQL查詢總是包含selected_status的原始值,除非我爲ID添加過濾器,在這種情況下,它將對所有後續請求使用該狀態我通過英寸
任何想法爲什麼這個char查詢參數是這樣的行爲?
我相信這是一個錯誤,但它可能已在更高版本中修復。請嘗試升級到3.3.3 –
這是從4.0.0.4 – brainbolt
未解決順便說一句,當我使用HQL而不是LINQ – brainbolt