内部加入 JayData


我使用 JayData

liberary,我想知道可以在 JayData 中模拟内部连接,例如:

Customers inner join Orders on
Customers.CustomerID = Orders.CustomerID

这怎么可能?

JayData 在当前版本中通常不支持 AdHoc 连接。不过,它在路线图上。

但是,可以通过多种方式实现类似的行为,具体取决于您的需求和基础数据提供程序。我假设您使用的是 OData 提供程序。

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

实体和上下文定义:

$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)按客户查询订单:

context.Orders.filter( function(order) {
  return order.Customer.Name.startsWith('John');
}).toArray(...)

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

ordersQuery = context.Orders.filter( function(order) { return order.Value > 200 });
context.Customers.filter( function(customer) {
 return custom.Orders.some(ordersQuery);
}).toArray(...);

相关内容

  • 没有找到相关文章

最新更新