首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JayData中的内连接

JayData中的内连接
EN

Stack Overflow用户
提问于 2012-06-27 16:25:00
回答 1查看 911关注 0票数 1

我使用JayData liberary,我想知道在JayData中模拟内部连接是可能的,比如:

代码语言:javascript
复制
Customers inner join Orders on
Customers.CustomerID = Orders.CustomerID

这是怎么可能的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-28 19:02:55

在当前版本中,JayData通常还不支持AdHoc联接。不过,这已经在路线图上了。

但是,根据您的需求和底层数据提供程序,可以通过多种方式实现类似的行为。我假设您使用的是OData提供程序。

在这种情况下,您可以使用导航属性来表示关系,从而在查询上实现隐式连接。

实体和上下文定义:

代码语言:javascript
复制
$data.Entity.extend("Customer", {
 Id: { key: true, computed: true, type: 'int' },
 Name: { type:string },
 Orders: { type: $data.EntitySet, elementType: 'Order', inverseProperty: 'Customer' }
});

$data.Entity.extend("Order" {
 Id: { key: true, computed: true, type: 'int' },
 Customer: { type: Customer, inverseProperty: 'Orders' }
});

$data.EntityCotnext.extend("CustomerOrders", {
  Customers: { type: $data.EntitySet, elementType: Customer },
  Orders: { type: $Data.EntitySet, elementType: Order }
});

1)按客户查询订单:

代码语言:javascript
复制
context.Orders.filter( function(order) {
  return order.Customer.Name.startsWith('John');
}).toArray(...)

2)按订单查询客户:这是JayData 1.1发布的新功能(请务必更新您的文件)

代码语言:javascript
复制
ordersQuery = context.Orders.filter( function(order) { return order.Value > 200 });

context.Customers.filter( function(customer) {
 return custom.Orders.some(ordersQuery);
}).toArray(...);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11222134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档