Skip to main content
All docs
V24.2

QueryBuildingExtensions.Transform(IJoinNode) Method

Creates a TransformationNodeBuilder object that allows you to apply transformations to a node created after the Join, Select, Union, or Union All operations.

Namespace: DevExpress.DataAccess.DataFederation

Assembly: DevExpress.DataAccess.v24.2.dll

Declaration

public static TransformationNodeBuilder Transform(
    this IJoinNode root
)

Parameters

Name Type Description
root IJoinNode

A node created after the Join, Select, Union, or Union All operations.

Returns

Type Description
TransformationNodeBuilder

An object that allows you to apply transformation operations.

Example

The following example demonstrates how to unfold and flatten the Products array of two data sources and unite data from these sources.

Show JSON Data (Products1.json)
[
    {
        "CategoryID": 1,
        "Products":
        [
            {
                "ProductName": "Chai",
                "UnitPrice": 18
            },
            {
                "ProductName": "Chang",
                "UnitPrice": 19
            }
        ]
    },
    {
        "CategoryID": 2,
        "Products":
        [
            {
                "ProductName": "Ikura",
                "UnitPrice": 31
            },
            {
                "ProductName": "Konbu",
                "UnitPrice": 6
            }
        ]
    }
]
Show JSON Data (Products2.json)
[
    {
        "CategoryID": 1,
        "Products":
        [
            {
                "ProductName": "Chai",
                "UnitPrice": 18
            },
            {
                "ProductName": "Chang",
                "UnitPrice": 19
            }
        ]
    },
    {
        "CategoryID": 2,
        "Products":
        [
            {
                "ProductName": "Ikura",
                "UnitPrice": 31
            },
            {
                "ProductName": "Konbu",
                "UnitPrice": 6
            }
        ]
    }
]
using DevExpress.DataAccess.DataFederation;
using DevExpress.DataAccess.Json;
// ...
var source1 = new Source("Products1", jsonDataSource1);
var source2 = new Source("Products2", jsonDataSource2);

var query = source1
    .From()
    .Select("Products")
    .Build()
    .Union(source2
        .From()
        .Select("Products")
        .Build())
    .Build()
    .Transform()
    .TransformColumn("Products")
    .Build("ProductsUnited");

var federation = new FederationDataSource() {
    Queries = { query }
};

The following schema is the result of the transformation:

"Products_ProductName": string
"Products_UnitPrice" : string
See Also