我是 WCF 的新手,我需要帮助来理解一些东西。
我创建了一个 WCF 数据服务,它返回由服务从实体映射的 DTO。在我的服务合同界面上,我有一些方法GetMyDto
返回IQueryable<MyDto>
。
我在 MVC 应用程序中添加了对此服务的服务引用。然后接口和代理客户端返回List<MyDto>
(或者我可以选择其他几个集合类型)而不是IQueryable<MyDto>
.
我知道IQueryable
不能暴露给客户端,但是如果我在客户端上过滤(即MyServiceClient.GetMyDto().Where(x => x.SomeValue == 1)
)它是在客户端还是服务器上过滤?
我的理解是它可以使用 odata,但是我看到的所有示例都直接将实体模型暴露给客户端,我没有这样做。我正在使用 DTO。
我的限制是什么?帮助我准确了解调用服务时发生的情况。