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

Connect the ASP.NET Web Forms Dashboard Control to an Entity Framework Data Source

  • 4 minutes to read

This tutorial shows how to add the DashboardEFDataSource to data source storage and make it available to users. This tutorial used the MDF database.

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

  2. In Web.config, specify a connection string to the added database.

    <configuration>
        <connectionStrings>
            <add name="NWindConnectionString" connectionString="data source=(localdb)\mssqllocaldb;attachdbfilename=|DataDirectory|\NWind.mdf;integrated security=True;connect timeout=120" providerName="System.Data.SqlClient" />        
        </connectionStrings>
    </configuration>
    
  3. Right-click the project and select Add | ADO.NET Entity Data Model. Provide OrdersContext as a model name and select the Code First from database model type in the invoked wizard.
  4. Select the added NWindConnectionString as a data connection for the created model.
  5. On the next page, specify which tables and view to include in your model. In this tutorial, the data model is based on the OrderDetail table. The code below shows the generated data model:

    namespace WebFormsDashboardDataSources {
        using System.Data.Entity;
    
        public partial class OrdersContext: DbContext {
            public OrdersContext()
                : base("name=OrdersContext") {
            }
    
            public virtual DbSet<OrderDetail> OrderDetails { get; set; }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder) {
                modelBuilder.Entity<OrderDetail>()
                    .Property(e => e.UnitPrice)
                    .HasPrecision(10, 4);
            }
        }
    }
    
  6. 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 EF data source.

    using System;
    using DevExpress.DashboardCommon;
    using DevExpress.DashboardWeb;
    using DevExpress.DataAccess.EntityFramework;
    
    public DataSourceInMemoryStorage CreateDataSourceStorage() {
        DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();
    
        DashboardEFDataSource efDataSource = new DashboardEFDataSource("EF Core Data Source");
        efDataSource.ConnectionParameters = new EFConnectionParameters(typeof(OrdersContext));
        dataSourceStorage.RegisterDataSource("efDataSource", efDataSource.SaveToXml());
    
        return dataSourceStorage;
    }
    
  7. 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 EF Data Source is now available in Web Dashboard:

web-dashboard-ex-core-ef-core-data-source

Users can bind dashboard items to data in the Web Dashboard’s UI. See Bind Dashboard Items to Data in the Web Dashboard’s UI for more information.

Example

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

Note

A complete sample project is available on GitHub: How to Register Data Sources for ASP.NET Web Forms Dashboard Control