2009-07-28 131 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