通过WCF服务公开IQueryable

Tru*_*ust 12 linq wcf iqueryable custom-linq-providers deferred-execution

我一直在学习IQueryable和延迟加载/延迟执行查询.

是否可以通过WCF公开此功能?我想暴露LINQ到SQL服务,返回一个IQueryable,我可以然后在客户端执行额外的查询,最后使用.ToList的execute().OData格式在这种情况下是否适用?

如果可能的话,究竟是什么技术术语,什么是一些很好的教程,我可以遵循?谢谢.

Lad*_*nka 11

您应该检查WCF数据服务,它允许您在客户端上定义Linq查询.WCF数据服务可能是满足您需求的唯一解决方案.

IQueryable仍然只是接口,功能取决于实现接口的类型.您无法直接公开Linq-To-Sql或Linq-To-Entities查询.有很多原因,例如短生活上下文或序列化将执行查询,因此客户端将获得所有对象的列表而不是查询.