使用WCF数据服务,是否可以在联合表上使用$ expand命令

时间:2010-11-09 17:39:24

标签: rest wcf-data-services

我正在尝试使用WCF数据服务做一些相当容易理解的事情,但无法找到如何做到这一点。

我有3个表,Customer,Product和一个联合表Customer_Product链接其他两个表(基本的n到n关系): 客户< = Customer_Product =>产品

我想在同一个查询中获取客户及其产品,所以我想做类似的事情:

/Service.svc/Customers(23)?$expand=Products

但是它告诉我表Customer上没有Products导航属性。

我找到的唯一选择是:

/Service.svc/Customers(23)?$expand=Customer_Product

然后再拨打电话获取产品详情。

有干净的方法吗?

提前多多感谢。

1 个答案:

答案 0 :(得分:1)

多对多关系通常由服务通过隐藏连接表来建模(如果它存储的唯一内容是关系并且其中没有数据)。如果您在服务中使用EF,这应该很容易做到。 如果由于某种原因需要公开连接表,则可以发出如下查询:

/Service.svc/Customers(23)?$expand=Customer_Product/Product

(扩展可以是多个级别)。当然,阅读结果会有点复杂,因为那里有两个级别,但你确实得到了你需要的数据。