我正在尝试使用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
然后再拨打电话获取产品详情。
有干净的方法吗?
提前多多感谢。
答案 0 :(得分:1)
多对多关系通常由服务通过隐藏连接表来建模(如果它存储的唯一内容是关系并且其中没有数据)。如果您在服务中使用EF,这应该很容易做到。 如果由于某种原因需要公开连接表,则可以发出如下查询:
/Service.svc/Customers(23)?$expand=Customer_Product/Product
(扩展可以是多个级别)。当然,阅读结果会有点复杂,因为那里有两个级别,但你确实得到了你需要的数据。