有一个我无法控制的数据库(因此不能简单地创建一个视图),它的表由OData公开。从逻辑上讲,表格看起来像。
create table one
(
one_id int not null,
constraint pk_one primary key (one_id)
)
create table two
(
two_id int not null,
one_id int not null,
constraint pk_two primary key (two_id, one_id),
foreign key (one_id) references one (one_id)
)
create table three
(
three_id int not null,
one_id int not null,
name varchar(50),
constraint pk_three primary key (three_id, one_id),
foreign key (one_id) references one (one_id)
)
我的问题是如何编写一个OData网址,以便在给出 two.two_id 的值时,我可以从表格三中检索所有与之关联的行表一个。在SQL中,这将是:
select three_id, name
from one join two on one.one_id = two.one_id
join three on one.one_id = three.one_id
where two.two_id = 2
我无法弄清楚如何在OData中的单个请求中进行导航。
答案 0 :(得分:0)
从表一中,您可以扩展到表二和表三,过滤on_id并从三个中选择数据。
e.g。
/ one?$ expand = two,three& $ filter = two / two_id eq 2及$选择= 3 / three_id,三/名称