corelibraries-devexpress-dot-dataaccess-dot-datafederation-0fecc44f.md
Provides a Fluent interface method to build a union query.
Namespace : DevExpress.DataAccess.DataFederation
Assembly : DevExpress.DataAccess.v25.2.dll
NuGet Package : DevExpress.DataAccess
public class UnionNodeBuilder
Public Class UnionNodeBuilder
The following members return UnionNodeBuilder objects:
Use the Union(QueryNode, QueryNode) method to access the UnionNodeBuilder ‘s object and build a query with a Fluent API.
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.
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;
}
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
Object UnionNodeBuilder
See Also