【问题标题】:Data Services with POCO that are dynamicly Created动态创建的带有 POCO 的数据服务
【发布时间】:2010-05-26 16:18:14
【问题描述】:

尝试了解使用 WCF 数据服务的选项可能是什么,基本上我试图通过从第 3 方 api 调用集中提供 RestFull 服务来抽象第 3 方 http API。除此之外,我还对 Odata 表示和 Api 支持数据服务感兴趣。

示例 3rd 方通话,

1)获取所有车辆

  I want to represent it in a restfull call http://localhost/Vehicles

2)GetVehicleLocation(车辆)

  I want to represent it in a restfull call http://localhost/Vehicles(1)/Location

我正在研究如何从 Web 服务调用中调用 List {使其变得简单}。这部分是直截了当的,我需要一些指导是什么时候进行呼叫 2),因为位置信息基于传递车辆的 web 服务调用,如果我理解正确,Linq to Object 假设 POCO 已填充..

这篇文章 Data Services Streaming 似乎在路上……

【问题讨论】:

    标签: wcf wcf-data-services


    【解决方案1】:

    我目前正在调查类似的情况。由于 WCF 数据服务的主要用例是通过 Entity 框架公开您的数据库表,因此要找到有关执行其他任何操作的良好信息实际上有点单薄。

    实际上,您尝试做的事情相当简单,并且可以通过使用 WCF 数据服务工具包来简化; you want to wrap odata around what

    您需要在根级别公开两种实体类型,Vehicle 和 Location

    1. 您需要一个DataService<MyDataContext> 作为服务的入口点,这需要为 Vehicles 和 Locations 定义两个 IQueryable 属性。您可能并不真的需要在根级别访问位置,但这是使用底层反射提供程序进行此工作的唯一方法。如果没有 Location 在根级别,服务将不会公开 Location 实体的元数据。

    2. 您的 Vehicle 实体将需要具有 [ForeignProperty] 属性的 Location 属性

    3. 您必须为具有名为的方法的车辆实现存储库; GetOne(string id)GetAll()GetLocationByVehicle(string id) 方法,id 将是您进行 api 调用所需的 VehicleId。

    在 /Vehicles 上发出 Get 请求将调用存储库上的 GetAll() 方法,/Vehicles(1) 将调用 GetOne() 方法,而 /Vehicles(1)/Location 将调用传入的 GetLocationByVehicle() 方法ID '1'。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多