2
A
回答
0
好吧,非常有趣的是,當試圖在Select
內部查詢中輸入值時,我的NH 3.2實際上因MismatchedTreeNodeException
而失敗,甚至可以進行更簡單的查詢。你正在使用哪個版本?
無論如何,看起來你不能使用投影(Select
)查詢以外的值,這可能是NHibernate的Linq限制。您的版本似乎緩存Select
編譯的表達式,忽略它依賴於變量的事實。 DateTime
所有呼叫的值都是一樣的,不是嗎?
有點清潔的解決辦法可能是這樣的:
.Select(g => new
{
Year = g.Key.Year,
Month = g.Key.Month,
TotalPageCount = g.Count(),
PublicPageCount = g.Count(p => p.State == PageState.Public && p.Published <= DateTime.UtcNow)
})
.AsEnumerable()
.Select(g => new Archive
{
ContextPageId = rootPage.Id,
Year = g.Year,
Month = g.Month,
TotalPageCount = g.TotalPageCount,
PublicPageCount = g.PublicPageCount
})
.ToList();
編輯我已經看了多一點謹慎,這確實是一個NHibernate的錯誤,已經知道。見this blog post和this JIRA bug entry。
相關問題
- 1. NHibernate的 - 使用子查詢
- 2. NHibernate的:創建一個從子查詢
- 3. NHibernate查詢,使用OfType和子查詢
- 4. 使用nHibernate命名查詢
- 5. 從第一MySQL查詢
- 6. 如何使用NHibernate查詢唯一鍵值
- 7. 如何使用從第一查詢結果中第二個查詢
- 8. 一對多的NHibernate查詢
- 9. 如何從第一個查詢中獲取字段的值並在第二個查詢中使用它
- 10. 我怎麼在下一子使用accnum從第一次查詢的查詢
- 11. 在PHP的第二個查詢中使用來自一個mysqli查詢的值
- 12. NHibernate的查詢
- 13. NHibernate的 - 第一個查詢是痛苦的緩慢
- 14. ArgumentOutOfRangeException使用LINQ的ToString NHibernate的查詢
- 15. DOMXPath獲取查詢的第一個值
- 16. 彙總查詢中的第一個值
- 17. 使用OR子查詢nhibernate檢查null。
- 18. 爲什麼我的第一個查詢的值從我的第二個查詢返回值?
- 19. 查詢查詢 - 第一次
- 20. 子查詢中使用查詢值從另一個表
- 21. 使用Oracle查詢每個星期的第一價值等
- 22. 如何從第一個查詢到第二個查詢的用戶結果
- 23. 查詢NHibernate的使用字符串HQL
- 24. 使用ICriteria的NHibernate相關子查詢
- 25. NHibernate的 - LINQ查詢使用COUNT(DISTINCT)
- 26. NHibernate的查詢使用QueryOver HQL
- 27. 使用子查詢中第一個查詢的行嗎?
- 28. 更新從內部查詢的表僅使用所述第一值
- 29. 的Oracle SQL,第一查詢的使用結果來執行第二查詢
- 30. 用於查找列中未使用的第一個值的SQL查詢
NH版似乎是3.2.0.4000,通過nuget安裝。我想我也必須檢查DateTime部分。 –
確定 - 這是NHibernate中的一個已知錯誤 - 請參閱我的編輯。 – NOtherDev