Back to Devexpress

JoinElement Class

corelibraries-devexpress-dot-dataaccess-dot-datafederation-32bdefe0.md

latest4.1 KB
Original Source

JoinElement Class

Defines the JOIN clause.

Namespace : DevExpress.DataAccess.DataFederation

Assembly : DevExpress.DataAccess.v25.2.dll

NuGet Package : DevExpress.DataAccess

Declaration

csharp
public class JoinElement
vb
Public Class JoinElement

Remarks

The SelectNode.SubNodes property provides access to a collection of JoinElement objects.

Example

This code snippet demonstrates how to create a query that combnes two tables from different data sources with the JOIN clause.

Note

The complete sample project How to Create a Federated Data Source at Runtime is available in the DevExpress Examples repository.

csharp
using DevExpress.DataAccess.DataFederation;
// ...
    FederationDataSource federation = new FederationDataSource();

    Source sourceProducts = new Source("Products", CreateSqlDataSource(), "Products");
    Source sourceOrderDetail = new Source("OrderDetail", CreateExcelDataSource("SalesPerson.xlsx", "Data"));

    var sourceNodeProducts = new SourceNode(sourceProducts, "Products");
    var sourceNodeOrderDetail = new SourceNode(sourceOrderDetail, "OrderDetail");

    var query = new SelectNode(sourceNodeProducts)
    {
        Alias = "ProductsOrderDetail",
        SubNodes = {
                new JoinElement {
                    Node = sourceNodeOrderDetail,
                    Condition = $"[{sourceNodeProducts.Alias}.ProductName] == [{sourceNodeOrderDetail.Alias}.ProductName]"
                }
            },
        Expressions = {
            new SelectColumnExpression(sourceNodeProducts, "ProductName"),
            new SelectColumnExpression(sourceNodeProducts, "QuantityPerUnit"),
            new SelectColumnExpression(sourceNodeOrderDetail, "OrderID"),
            new SelectColumnExpression(sourceNodeOrderDetail, "OrderDate"),
            new SelectColumnExpression(sourceNodeOrderDetail, "Quantity"),
            new SelectColumnExpression(sourceNodeOrderDetail, "UnitPrice")
            }
    };
    federation.Queries.Add(query);
    federation.Fill();
vb
Imports DevExpress.DataAccess.DataFederation
' ... 
    Dim federation As New FederationDataSource()

    Dim sourceProducts As New Source("Products", CreateSqlDataSource(), "Products")
    Dim sourceOrderDetail As New Source("OrderDetail", CreateExcelDataSource("SalesPerson.xlsx", "Data"))

    Dim sourceNodeProducts = New SourceNode(sourceProducts, "Products")
    Dim sourceNodeOrderDetail = New SourceNode(sourceOrderDetail, "OrderDetail")

    Dim query = New SelectNode(sourceNodeProducts)
    query.Alias = "ProductsOrderDetail"
    query.SubNodes.Add(New JoinElement With {.Node = sourceNodeOrderDetail,
    .Condition = $"[{sourceNodeProducts.Alias}.ProductName] == [{sourceNodeOrderDetail.Alias}.ProductName]"})

    query.Expressions.Add(New SelectColumnExpression(sourceNodeProducts, "QuantityPerUnit"))
    query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "OrderID"))
    query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "OrderDate"))
    query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "Quantity"))
    query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "UnitPrice"))
    federation.Queries.Add(query)
    federation.Fill()

Inheritance

Object JoinElement

See Also

JoinElement Members

DevExpress.DataAccess.DataFederation Namespace