扩大odata

时间:2012-07-13 13:00:06

标签: odata

我有两张桌子:

T1 with attributes: commonG, g1, g3,g7,g8
T2 with attributes: commonG, g2,g5,g6

在哪里T1.commonG与T2.commonG相同, 对于此查询:

select t1.commonG, T1.g1, T2.g2
from T1 and T2
where T1.g3=777 and T1.commonG=T2.commonG

所以我想使用 odataquery 访问此选择数据以获取某些g3值。

1 个答案:

答案 0 :(得分:2)

OData查询依赖于EDM模型,该模型了解T1.commonG和T2.commonG之间存在外键关系。假设你有这样一个模型,你需要做三件事:

  • $ select系统查询选项允许您进行投影,例如$ select = Name,Category / Name
  • $ expand系统查询选项允许您指定来自两个不同表的投影(将其视为满足上述查询中的逻辑连接)
  • $ filter system query选项允许您指定上面where子句的等效项

现实世界中的一个实际例子是以下查询: http://services.odata.org/Experimental/OData/OData.svc/Products?$expand=Category&$filter=Category/Name%20eq%20'Food'&select=Name,Category/Name

如果您将样本服务中的T1映射到产品,将样本服务中的T2映射到类别,您会发现此样本非常接近您实际想要的样本。