SelectNodeBuilder Class
Provides a Fluent interface method used to build a federated query.
Namespace : DevExpress.DataAccess.DataFederation
Assembly :
DevExpress.DataAccess.v24.2.dll
NuGet Package :
DevExpress.DataAccess
# Declaration
public class SelectNodeBuilder
Public Class SelectNodeBuilder
# Related API Members
The following members return SelectNodeBuilder objects:
QueryBuildingExtensions.From(IJoinNode)
QueryBuildingExtensions.From(Source)
SelectNodeBuilder.InnerJoin(IJoinNode, CriteriaOperator)
SelectNodeBuilder.InnerJoin(IJoinNode, String)
SelectNodeBuilder.InnerJoin(Source, CriteriaOperator)
SelectNodeBuilder.InnerJoin(Source, String)
SelectNodeBuilder.Join(IJoinNode, CriteriaOperator)
SelectNodeBuilder.Join(IJoinNode, JoinType, CriteriaOperator)
SelectNodeBuilder.Join(IJoinNode, JoinType, String)
SelectNodeBuilder.Join(IJoinNode, String)
SelectNodeBuilder.Join(Source, CriteriaOperator)
SelectNodeBuilder.Join(Source, JoinType, CriteriaOperator)
SelectNodeBuilder.Join(Source, JoinType, String)
SelectNodeBuilder.Join(Source, String)
SelectNodeBuilder.LeftJoin(IJoinNode, CriteriaOperator)
SelectNodeBuilder.LeftJoin(IJoinNode, String)
SelectNodeBuilder.LeftJoin(Source, CriteriaOperator)
SelectNodeBuilder.LeftJoin(Source, String)
SelectNodeBuilder.Select(SelectStatement[])
SelectNodeBuilder.SelectAll()
SelectNodeBuilder.SelectAllColumns()
SelectNodeBuilder.Where(String)
Use the Source extension method From to access the SelectNodeBuilder object and build a query with a Fluent API.
# Example
This code snippet demonstrates how to create a federated data source that contains two queries. The SelectNodeBuilder
‘s Fluent API is used to construct a federated query.
using DevExpress.DataAccess.DataFederation ;
FederationDataSource federation = new FederationDataSource();
Source sourceProducts = new Source("Products" , CreateSqlDataSource(), "Products" );
Source sourceOrderDetail = new Source("OrderDetail" , CreateExcelDataSource("SalesPerson.xlsx" , "Data" ));
Source sourceHeader = new Source("OrderHeader" , CreateExcelDataSource("OrderHeaders.xlsx" , "OrderHeader" ));
SelectNode query1 = sourceProducts.From().Select("ProductName" , "QuantityPerUnit" , "UnitsInStock" )
.Join(sourceOrderDetail, "[Products.ProductName] = [OrderDetail.ProductName]" )
.Select("OrderDate" )
.Build("ProductsOrderDetail" );
SelectNode query2 = sourceHeader.From().Select("OrderID" , "Status" , "Description" )
.Join(sourceOrderDetail, "[OrderHeader.OrderID] = [OrderDetail.OrderID]" )
.Select("Quantity" , "Extended Price" )
.Build("OrderHeaderOrderDetail" );
federation.Queries.AddRange(new [] { query1, query2 });
federation.Fill()
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 sourceHeader As New Source("OrderHeader" , CreateExcelDataSource("OrderHeaders.xlsx" , "OrderHeader" ))
Dim query1 As SelectNode = sourceProducts.From ().
Select ("ProductName" , "QuantityPerUnit" , "UnitsInStock" ).
Join (sourceOrderDetail, "[Products.ProductName] = [OrderDetail.ProductName]" ).
Select ("OrderDate" ).
Build("ProductsOrderDetail" )
Dim query2 As SelectNode = sourceHeader.From ().
Select ("OrderID" , "Status" , "Description" ).
Join (sourceOrderDetail, "[OrderHeader.OrderID] = [OrderDetail.OrderID]" ).
Select ("Quantity" , "Extended Price" ).
Build("OrderHeaderOrderDetail" )
federation.Queries.AddRange( { query1, query2 })
federation.Fill()
See Also