2011-11-16 17 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