2011-02-25 60 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); 

什么类型的查询创建,我可能能够帮助

你可以跳过,并采取过这是完全罚款。