Back to Devexpress

UnionNodeBuilder Class

corelibraries-devexpress-dot-dataaccess-dot-datafederation-0fecc44f.md

latest5.5 KB
Original Source

UnionNodeBuilder Class

Provides a Fluent interface method to build a union query.

Namespace : DevExpress.DataAccess.DataFederation

Assembly : DevExpress.DataAccess.v25.2.dll

NuGet Package : DevExpress.DataAccess

Declaration

csharp
public class UnionNodeBuilder
vb
Public Class UnionNodeBuilder

The following members return UnionNodeBuilder objects:

Remarks

Use the Union(QueryNode, QueryNode) method to access the UnionNodeBuilder ‘s object and build a query with a Fluent API.

Example

The following code snippet demonstrates how to use UnionType to create a federated data source from two Excel files. The UnionNodeBuilder ‘s Fluent API is used to construct a federated query.

The QueryBuildingExtensions.Union(QueryNode, QueryNode, UnionType) method combines rows from two queries into a single data set and removes duplicate rows.

The result is a new “UnionTable” query that combines the two queries.

csharp
using DevExpress.DataAccess.DataFederation;
using DevExpress.DataAccess.Excel;
using System.Linq;

//...

static ExcelDataSource CreateExcelDataSource(string fileName, string worksheetName) {
  var excelDataSource = new ExcelDataSource {
      FileName = fileName,
      SourceOptions = new ExcelSourceOptions {
          SkipEmptyRows = true,
          SkipHiddenColumns = true,
          SkipHiddenRows = true,
          ImportSettings = new ExcelWorksheetSettings { WorksheetName = worksheetName }
      }
  };
    return excelDataSource;
}

public static FederationDataSource CreateFederationDataSource() {
    Source salesPerson1 = new Source("SalesPerson", CreateExcelDataSource("../../../SalesPerson.xlsx", "Data"));
    Source salesPerson2 = new Source("SalesPerson2", CreateExcelDataSource("../../../SalesPerson.xlsx", "Data2"));
    var query =
        salesPerson1.From().Select("CategoryName", "Country", "Sales Person", "OrderDate", "OrderID", "Discount", "Extended Price").Build()
        .Union(
            salesPerson2.From().Select("CategoryName", "Country", "Sales Person", "OrderDate", "OrderID", "Discount", "Extended Price").Build(),
            UnionType.Union
        )
        .Build("UnionTable");
    FederationDataSource federation = new FederationDataSource();
    federation.Queries.Add(query);
    federation.Fill();
    return federation;
}
vb
Imports DevExpress.DataAccess.DataFederation
Imports DevExpress.DataAccess.Excel
Imports System.Linq

'...

Shared Function CreateExcelDataSource(ByVal fileName As String, ByVal worksheetName As String) As ExcelDataSource
  Dim excelDataSource = New ExcelDataSource With {.FileName = fileName, .SourceOptions = New ExcelSourceOptions With {.SkipEmptyRows = True, .SkipHiddenColumns = True, .SkipHiddenRows = True, .ImportSettings = New ExcelWorksheetSettings With {.WorksheetName = worksheetName}}}
    Return excelDataSource
End Function

Public Shared Function CreateFederationDataSource() As FederationDataSource
    Dim salesPerson1 As New Source("SalesPerson", CreateExcelDataSource("D:\projects\How_to_create_Federated_data_source\SalesPerson.xlsx", "Data"))
    Dim salesPerson2 As New Source("SalesPerson2", CreateExcelDataSource("D:\projects\How_to_create_Federated_data_source\SalesPerson2.xlsx", "Data2"))
    Dim query = salesPerson1.From().Select("CategoryName", "Country", "Sales Person", "OrderDate", "OrderID", "Discount", "Extended Price").Build().Union(salesPerson2.From().Select("CategoryName", "Country", "Sales Person", "OrderDate", "OrderID", "Discount", "Extended Price").Build(), UnionType.Union).Build("UnionTable")
    Dim federation As New FederationDataSource()
    federation.Queries.Add(query)
    federation.Fill()
    Return federation
End Function

Inheritance

Object UnionNodeBuilder

See Also

UnionNodeBuilder Members

DevExpress.DataAccess.DataFederation Namespace