2011-11-16 56 views
0

我有一個REST Web服務,它使用LinqtoNh查詢實體並將它們返回爲DTO,簡單的古典東西。我希望服務在返回的實體上應用一些過濾/排序子句,並詢問是否有某種方式將linqtonh表達式序列化,以便在不創建某種自定義策略的情況下發送它。一個加號會在客戶端沒有NH參考。 有什麼建議嗎?序列化LinqtoNh過濾器/訂單子句

+0

可能重複:http://stackoverflow.com/questions/217961/serializing-and-deserializing - 表達樹 - 在C - 銳 –

+0

@GertArnold同意它是一個可能重複,但答案几乎已過時,因爲該組件是沒有更多的 –

回答

1

看看WCF Ria Services:它公開了一個支持LINQ過濾,排序,分頁e分組的WCF Rest服務。 服務器端的DomainService將創建一個LINQ查詢與「Where」,「Order *」,「Take」,「Skip」...
避免NH參考是一個好主意,實現您自己的IQueryable,將其鏈接到NHibernate (也許你想使用IoC引擎來做到這一點),並在暴露的查詢中返回它!你幾乎已經完成了,大部分的LINQ2NH調用都是標準的LINQ擴展方法,如果你需要使用渴望的讀取擴展方法(Fetch *)或其他漂亮的NHibernate東西,你必須寫一些其他的東西。
至於客戶端,WCF RIA最初是專爲SL,但支持一切,他們甚至有JS客戶端調用RIA/JS