2011-02-25 56 views
0

我嘗試使用休耕查詢來獲取所有的公司,這是在特定日期之後創建的:不支持NHibernate Linq DateTime in Where-Clauses?

return session.Query<Company>().Where(x => x.Created > value) 

當我執行此,我總是得到一個System.NotSupportedException。當我刪除Where()時,它正在工作。 我使用NHibernate 3.0。 NH3.0中的Linq不支持這些Where-clause?我該怎麼做呢?

+0

'x.Created'和'value'的類型是什麼?每種類型的'Kind'的值是什麼? Where在其他領域的Where子句是否工作? – 2011-02-25 22:21:28

+0

它是一個日期時間? Nullable 品種? – t3rse 2011-02-25 22:33:29

+0

x.Created是DateTime類型,值也是DateTime類型。其他領域也不起作用。難道是因爲公司是從另一個(聯繫人)繼承的類? – BennoDual 2011-02-25 22:49:13

回答

1

我已經找到了問題:

我也有一個跳過()和採取()使用。這兩個必須在Where()之後。

+0

這是如何幫助他..因爲他甚至提到任何東西abt skip take .. – Baz1nga 2011-02-26 08:08:29

+0

哦,dint意識到你是誰提出的問題。我不知道爲什麼你添加了一個答案是nt .. – Baz1nga 2011-02-26 08:10:02

+0

這是解決方案(將Skip()和Take()放在Where()之後)。我以爲我寫這個答案是因爲它解決了我的問題,而不是作爲評論。這是錯的嗎? – BennoDual 2011-02-26 15:13:14

0

問題是NH3不支持NH3,你應該使用QueryOver而不是Query。所以它應該是

return session.QueryOver<Company>().Where(right condn); 

什麼類型的查詢創建,我可能能夠幫助

你可以跳過,並採取過這是完全罰款。