2012-01-23 56 views
-1

我有幾個簡單的命名查詢,只有連接,ant夫婦子選擇。除了一個,他們都是完美的。問題是,當我在Management Studio中運行SQL代碼時,我得到了177個結果,並且當我使用相同的SQL代碼運行命名​​查詢時,我得到了20個結果。我無法弄清楚爲什麼。我稱之爲命名查詢的所有其他:nHibernate命名查詢返回不是所有結果

public IList<InstitutionIndexDTO> GetInstitutionIndexByWorkTimeSearch(int time, int institutionType) 
{ 
    IQuery query = GetCurrentSession() 
     .GetNamedQuery("GetInstitutionsListByTime") 
     .SetInt32("Type", institutionType) 
     .SetInt32("TimeUntilClose", time) 
     .SetResultTransformer(Transformers.AliasToBeanConstructor(typeof(InstitutionIndexDTO).GetConstructors()[0])); 

     return query.List<InstitutionIndexDTO>(); 
} 

,甚至當我在SQL harcoded參數,我仍然得到了同樣的結果。我試着用Profiler來檢查,但生成的SQL是完美的,並在管理工作室返回所有177個結果。
InstitutionIndexDTO工作正常,因爲我用它與其他命名查詢。

我有一個工作命名查詢,並在導致問題從一個製造,增加額外的INNER JOIN和不斷變化的WHERE子句。兩個查詢都返回相同的列。
也許有人有一個想法,我可以做錯了什麼?

+0

你可以發表查詢本身請 – Nexus

回答

0

我測試了我的代碼,並意識到這行是造成問題:
(CASE WHEN (DATEPART(dw, GETDATE())) = 1 THEN 7 ELSE (DATEPART(dw, GETDATE()) - 1) END)

如果我理解不錯,問題是在DATEPART功能。有沒有人遇到過這個問題?

+0

我解決了問題,通過使用'SET DATEFIRST 1' – JNM