Как получить вложенные дети с помощью библиотеки Jaydata
$data.Entity.extend('Razoom.Model.Product', {
'ProductID': { 'key': true, 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'LocationID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'Code': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 50 },
'Name': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 150 },
'Notes': { 'type': 'Edm.String', 'maxLength': 250 },
'Quantity': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'RetailPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
'CostPrice': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
'UpdatedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'UpdatedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
'SaleAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'SaleTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'PurchaseAccountID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'PurchaseTaxGroupID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'Active': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
'UnitOfMeasureId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'ItemTypeId': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'IsDefaultLabour': { 'type': 'Edm.Boolean', 'nullable': false, 'required': true },
'BinId': { 'type': 'Edm.Int32' },
'ProductPackages': { 'type': 'Array', 'elementType': 'Razoom.Model.ProductPackage', 'inverseProperty': 'Product' },
'PurchaseTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'PurchaseProducts' },
'SaleTaxGroup': { 'type': 'Razoom.Model.TaxGroup', 'required': true, 'inverseProperty': 'SaleProducts' },
'PurchaseAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'PurchaseProducts' },
'SaleAccount': { 'type': 'Razoom.Model.Account', 'required': true, 'inverseProperty': 'SaleProducts' },
'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'AddedProducts' },
'User1': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'UpdatedProducts' },
'Items': { 'type': 'Array', 'elementType': 'Razoom.Model.Item', 'inverseProperty': 'Product' },
'Location': { 'type': 'Razoom.Model.Location', 'required': true, 'inverseProperty': 'Products' },
'Notes1': { 'type': 'Array', 'elementType': 'Razoom.Model.Note', 'inverseProperty': 'Product' },
'Inventories': { 'type': 'Array', 'elementType': 'Razoom.Model.Inventory', 'inverseProperty': 'Product' },
'ItemType': { 'type': 'Razoom.Model.ItemType', 'required': true, 'inverseProperty': 'Products' },
'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Products' }
});
$data.Entity.extend('Razoom.Model.Inventory', {
'InventoryID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
'ProductID': { 'type': 'Edm.String', 'nullable': false, 'required': true, 'maxLength': 36 },
'DefaultBinID': { 'type': 'Edm.Int32' },
'AddedUserID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'AddedDate': { 'type': 'Edm.DateTime', 'nullable': false, 'required': true },
'DeletedUserID': { 'type': 'Edm.Int32' },
'DeletedDate': { 'type': 'Edm.DateTime' },
'User': { 'type': 'Razoom.Model.User', 'required': true, 'inverseProperty': 'Inventories' },
'User1': { 'type': 'Razoom.Model.User', 'inverseProperty': 'Inventories1' },
'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'Inventories' },
'Product': { 'type': 'Razoom.Model.Product', 'required': true, 'inverseProperty': 'Inventories' },
'EventHistories': { 'type': 'Array', 'elementType': 'Razoom.Model.EventHistory', 'inverseProperty': 'Inventory' },
'InventoryBins': { 'type': 'Array', 'elementType': 'Razoom.Model.InventoryBin', 'inverseProperty': 'Inventory' }
});
$data.Entity.extend('Razoom.Model.InventoryBin', {
'InventoryBinID': { 'key': true, 'type': 'Edm.Int32', 'nullable': false, 'computed': true },
'BinID': { 'type': 'Edm.Int32' },
'InventoryID': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
'Quantity': { 'type': 'Edm.Decimal', 'nullable': false, 'required': true },
'MinInventoryLevel': { 'type': 'Edm.Decimal' },
'MaxInventoryLevel': { 'type': 'Edm.Decimal' },
'Bin': { 'type': 'Razoom.Model.Bin', 'inverseProperty': 'InventoryBins' },
'Inventory': { 'type': 'Razoom.Model.Inventory', 'required': true, 'inverseProperty': 'InventoryBins' }
});
Я пытаюсь получить все продукты с данными Inventory и InventoryBins, используя приведенный ниже код.
var ProductResponse = RazoomCoreEntities.Products.include('Inventories').include('Inventories.InventoryBins').map(mapCallback).toArray();
но я всегда получаю сообщение об ошибке.
Мои вопросы
- JayData поддерживает глубокое включение? в моем случае один продукт имеет несколько "Инвентаризация", а далее "Инвентаризация" имеет несколько "Инвентаризация"
Я также пытался
var ProductResponse = RazoomCoreEntities.Products.include('c=>c.Inventories.InventoryBins')
но, похоже, ничего не работает. Может ли кто-нибудь подсказать мне написать правильный код или хотя бы сказать, поддерживает ли JayData глубокое включение или нет?
Пожалуйста, помогите мне, потому что я застрял в коде, и это может привести к провалу моего проекта. любая помощь очень ценится. заранее спасибо