WCF数据服务自定义实现

时间:2014-09-26 13:06:00

标签: c# wcf odata wcf-data-services

如何将参数从客户端传递到服务器中的方法以获取实体数据。

在服务器端:

List<Foo> getFoos = _serverObject.GetFoos(p1, p2); //Here's how I am getting foo from another server

class FooProvider
{ 
   public IQueryable<Foo> Foos
   {
      get{return getFoos.AsQueryable();}
   }
}

在客户端:

var res = from f in ctx.Foos
          where f.p1 == p1_val && f.p2 == p2_val
          select f;

现在我想要获得的是所有Foo记录取决于p1_valp2_val参数,但我必须将其传递给_serverObject.GetFoos(p1, p2);这样p1p2是从客户端而不是从服务器设置的。

请建议一些机制

1 个答案:

答案 0 :(得分:1)

我确实相信你想要实现的目标主要与

有关

Using an ADO.NET Entity Framework DataSource(WCF Data Services)

并且将参数从客户端传递到服务器只是冰山一角,但是如果我错了并且只通过将复杂类型p1和p2从客户端传递到服务器来解决所有问题,那么请执行以下操作: p>

  1. 在您的WCF服务器中,只需定义2个新的Data Contracts,并将其称为p1和p2以及所有需要的字段
  2. 现在,在客户端向新创建的服务添加服务引用时,您可以填充p1和p2,并在调用服务方法时将其从Proxy class传递到服务器
  3. 故事的道德: 您需要在服务中将这两种类型定义为数据合约,以便在客户端的代理类中将它们用作参数。