是否有可能得到Nhibernate linq生成一個帶「In」子句的查詢?例如 - Where AnID in (x,y,z)
?Nhibernate Linq在條款
20
A
回答
28
我不知道nHibernate在生成所有潛在的LINQ查詢方面的狀態,但是您應該可以使用.Contains()
來生成IN。
var list = new int[] { x, y, x };
var q = db.Entities.Where(e => list.Contains(e.AnID));
3
同意,這是行不通的。我發現生成的SQL爲「不」是奇怪的,但(如3.3.0 GA)
...
from
mytable t0_
where
case
when t0_.testValue in (
@p0 , @p1 , @p2
) then 1
else 0
[email protected]
@p0 = 9 [Type: Int32 (0)],
@p1 = 99 [Type: Int32 (0)],
@p2 = 109 [Type: Int32 (0)],
@p3 = False [Type: Boolean (0)],
...
似乎有點奇怪,以「案例」這時候「不」本來清晰的(不,我計劃閱讀每一行,但也可能在跟蹤/配置文件中)。
(......後來那一天......)
我意識到,SQL上述 '怪' 的選擇,只有當我使用
.Where(e => list.Contains(e.AnID) == false)
如果我用
.Where(e => !list.Contains(e.AnID))
生成的SQL更乾淨(使用'not in')
0
NHibernate有一個選項IsIn是RestrictionEx的一部分緊張
X => x.Name.IsIn(新[] { 「一」, 「B」})
相關問題
- 1. Linq到nHibernate v3.2 - 在條款
- 2. LINQ NHibernate的「按組」條款
- 3. 在LINQ條款 「在」
- 4. 「在所有」條款在LINQ
- 5. LINQ在收集條款
- 6. 值不能在LINQ條款
- 7. Linq其中在條款
- 8. SQL到LINQ條款
- 9. linq select where條款
- 10. linq其中條款
- 11. nHibernate 3 QueryOver與條款
- 12. NHibernate的LINQ其中具有布爾值條款
- 13. NHibernate的LINQ的多個條款變得無用數據
- 14. MonoRail ActiveRecord/NHibernate計算在哪裏條款
- 15. 流利nhibernate:問題在哪裏條款
- 16. Linq多條款條件如果條件
- 17. 動態LINQ組按條款
- 18. LINQ動態從條款
- 19. LINQ加入我的條款
- 20. Linq問題:合併條款
- 21. 其他條款對LINQ,凡
- 22. 檢查Linq空條款
- 23. in linq中的條款
- 24. Linq to Entities where條款
- 25. Linq中的哪裏條款
- 26. 通過其中LINQ條款
- 27. 凡在LINQ條款在VB中
- 28. LINQ多個條件「的」條款
- 29. 連續(有條件)Linq中的條款
- 30. LINQ問題在哪裏條款
燁,工作與NHibernate 3.1.0 GA – 2011-03-09 18:59:54