我正在查詢Nhibernate條件查詢,其中包含2100以上的In子句值。 我做了一些像Session.CreateCriteria(typeof())。Add(Expression.In(「fieldName」,arrayValue)) 其中arrayValue包含超過2100值。我遇到了錯誤 發生了異常: UnknownError NHibernate.ADOException:無法執行查詢..然後在數組中有超過3000個值的查詢。 與谷歌的一些幫助,我們發現IN子句在Sql中只支持到2100的值。 有人曾經遇到過類似的問題嗎?我們不想更改查詢,因爲它是以某種通用方式編寫的,而不是自定義的。Nhibernate表達式。限制
0
A
回答
2
這是SQL Server的限制。我不會建議這樣做,但是如果你堅持,你可以通過創建一個表值sql函數來解決它(見http://www.dzone.com/snippets/function-getting-comma),它用逗號(或任何你想要的分隔符)分割一個字符串,並返回值作爲表,然後將所有ID作爲(例如)1參數中的逗號分隔列表傳入,並在條件查詢中使用SQLCriterion。
如:
criteria.Add(
new SQLCriterion("{alias}.ID IN (SELECT element FROM dbo.GetCSVValues(?))",
new[]{csvListOfIds},
new[]{NHibernateUtil.String}))
2
你可能分裂成數組多批次,查詢多次,然後結合的結果。
相關問題
- 1. NHibernate標準限制與表達式
- 2. nhibernate - 基於表達式的限制
- 3. 限制表達式
- 4. 限制在正則表達式表達
- 5. Nhibernate:使用表達式
- 6. nHibernate中的Linq表達式
- 7. 表達式樹NHibernate的
- 8. C#Lambda表達式和NHibernate
- 9. 編譯NHibernate Linq表達式
- 10. Complex nHibernate QueryOver表達式
- 11. nHibernate HasMany限制
- 12. 正則表達式,字符數限制
- 13. 限制正則表達式字邊界
- 14. 正則表達式限制零
- 15. 正則表達式與限制
- 16. 正則表達式與長度限制
- 17. 限制正則表達式匹配
- 18. 限制表達式中的位數
- 19. 限制_末的正則表達式
- 20. 限制複雜的正則表達式
- 21. 如何限制QLineEdit中的表達式
- 22. 正則表達式來限制數字
- 23. SSRS 2008R2表達式限制文本
- 24. 對nginx正則表達式的限制?
- 25. Python正則表達式 - 限制結果?
- 26. 正則表達式來限制字符
- 27. ASP.NET正則表達式,限制數字
- 28. 正則表達式字符數限制
- 29. 正則表達式限制數字的上限和下限
- 30. 限制表達長度