1

私はJayDataライブラリを使用していますが、次のように、JayDataで内部結合をシミュレートできることを知りたいです。

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

そしてそれはどのように可能でしょうか?

4

1 に答える 1

1

一般的なAdHoc結合は、現在のリリースではまだJayDataによってサポートされていません。しかし、それはロードマップ上にあります。

ただし、ニーズと基盤となるデータプロバイダーに応じて、さまざまな方法で同様の動作を実現できます。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(...);
于 2012-06-28T11:02:54.517 に答える