Back to Devexpress

SelectNodeBuilder Class

corelibraries-devexpress-dot-dataaccess-dot-datafederation-a58871b0.md

latest7.9 KB
Original Source

SelectNodeBuilder Class

Provides a Fluent interface method used to build a federated query.

Namespace : DevExpress.DataAccess.DataFederation

Assembly : DevExpress.DataAccess.v25.2.dll

NuGet Package : DevExpress.DataAccess

Declaration

csharp
public class SelectNodeBuilder
vb
Public Class SelectNodeBuilder

The following members return SelectNodeBuilder objects:

Show 22 links

Remarks

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.

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"));
    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()
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 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()

Inheritance

Object SelectNodeBuilder

See Also

SelectNodeBuilder Members

DevExpress.DataAccess.DataFederation Namespace