Skip to main content
A newer version of this page is available. .

XPO Data Source

  • 2 minutes to read

This tutorial shows how to add the DashboardXpoDataSource to data source storage and make it available to users. This example uses XPO Business Model based on the SQLite database.

  1. In your application, add the nwind.db database to the App_Data folder from the C:\Users\Public\Documents\DevExpress Demos 20.2\Components\Data directory.

  2. Create an XPO model based on the SQLite nwind.db database.

    using DevExpress.Xpo;
    
    namespace WebDashboardApp {
        [Persistent("Categories"), DeferredDeletion(false)]
        public class Category : XPCustomObject {
            int categoryId;
            string categoryName;
            string description;
            [Key]
            public int CategoryID {
                get { return categoryId; }
                set { SetPropertyValue<int>("CategoryID", ref categoryId, value); }
            }
            public string CategoryName {
                get { return categoryName; }
                set { SetPropertyValue<string>("CategoryName", ref categoryName, value); }
            }
            public string Description {
                get { return description; }
                set { SetPropertyValue<string>("Description", ref description, value); }
            }
        }
    }
    
  3. In Web.config, specify a connection string to the SQLite database.

    <configuration>
        <connectionStrings>
            <add name="NWindConnectionString" connectionString="XpoProvider=SQLite;Data Source=|DataDirectory|\nwind.db" />            
        </connectionStrings>
    </configuration>
    
  4. In the Default.aspx.cs (or .vb) file, create a public method that returns the configured dashboard’s data source storage (DataSourceInMemoryStorage) and define the XPO data source.

    using System;
    using DevExpress.DashboardCommon;
    using DevExpress.DashboardWeb;
    
    public DataSourceInMemoryStorage CreateDataSourceStorage() {
        DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();
    
        DashboardXpoDataSource xpoDataSource = new DashboardXpoDataSource("XPO Data Source");
        xpoDataSource.ConnectionStringName = "NWindConnectionString";
        xpoDataSource.SetEntityType(typeof(Category));
        dataSourceStorage.RegisterDataSource("xpoDataSource", xpoDataSource.SaveToXml());  
    
        return dataSourceStorage;
    }
    
  5. Call the ASPxDashboard.SetDataSourceStorage method to configure the data source storage. Use the created CreateDataSourceStorage method as the SetDataSourceStorage parameter.

    using DevExpress.DashboardWeb;
    
    protected void Page_Load(object sender, EventArgs e) {
        // ...  
    
        // Configures the data source storage.
        ASPxDashboard1.SetDataSourceStorage(CreateDataSourceStorage());
    }
    

The XPO Data Source is now available in the Web Dashboard:

web-dashboard-ex-object-data-source

Users can now bind dashboard items to data in the Web Dashboard’s UI.

Example

The example shows how to make a set of data sources available for users in the Web Dashboard application.

View Example: How to Register Data Sources for ASP.NET Web Forms Dashboard Control