2009-07-28 141 views
2

我知道IQueryable无法序列化。这意味着查询无法序列化,发送到Web服务,反序列化,查询然后发回。将休眠linq查询转换为HQL

我想知道是否有可能将hibernate linq查询转换为hql以通过线路发送。

我还缺少另一条路线吗?

+5

我有点怀疑为什么你想设计你的web服务来接受任意查询。这通常不是一个好主意。 – Thorarin 2009-07-28 05:59:52

回答

0

我有一个建议给你。不要尝试序列化查询。而是为您的用户提供组合任意LINQ表达式的能力。然后通过线路发送表达式(这里有一个疑难解答,因为表达式不可序列化)到您的服务器。

我最近向NHibernate.Linq项目提交了一个对它们的NHibernateExtensions类的更改 - 一个新的ISession扩展方法List,它接受一个表达式并用相应的数据填充给定列表,就像ICriteria.List方法一样。该更改已被接受(请参阅here),因此下载最新版本的NHibernate.Linq应包含此方法。

无论如何,你可以找到这种方法的详细信息here