This version of the Ed-Fi Dashboards is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.
Dashboard Connection Strings
- Kistel Hazel
- Ian Christopher
Overview
The Ed-Fi Dashboards can be configured to connect to databases in different ways. Two illustrative connection string approaches are shown below.
Approach 1: One Connection String per Local Education Agency
The default configuration is one Local Education Agency per database. In the sample data it is set up to connect to the Grand Bend ISD datastore.
<connectionStrings> <!-- NOTE: Add new connection string placeholders for deployment in Web.connectionStrings.config --> <clear /> <add name="Application_Db" connectionString="Database=EdFi_Application; Data Source=(local); Persist Security Info=True; User Id=edfiPService; Password=edfiPService;" providerName="System.Data.SqlClient" /> <!-- Depending on the setup that you require we support various types of DB separation.--> <add name="GrandBendISD" connectionString="Database=EdFi_Dashboard; Data Source=(local); Persist Security Info=True; User Id=edfiPService; Password=edfiPService;" providerName="System.Data.SqlClient" /> <!-- If historical information is going to be displayed you will need a DataWarehouse--> <add name="DataWarehouse" connectionString="Database=EdFi_DashboardDW; Data Source=(local); Persist Security Info=True; User Id=edfiPService; Password=edfiPService;" providerName="System.Data.SqlClient" /> </connectionStrings>
Approach 2: One Connection String for Multiple Local Education Agencies
In this approach, the connection string setup requires a few preliminary steps in code.
First, edit the code in EdFi.Dashboards.Presentation.Web.Utilities.CastleWindsor.ConfigurationSpecificInstallerBase.cs (if this file does not exist then you need to add it and create a new ConfigurationSpecificInstallerBase
class that inherits from the Core implementation:
public class ConfigurationSpecificInstallerBase : Core.Utilities.CastleWindsor.ConfigurationSpecificInstallerBase
Next, override the default implementation of RegisterIDbConnectionStringSelector
:
protected override void RegisterIDbConnectionStringSelector(IWindsorContainer container)
Also edit the code in EdFi.Dashboards.SecurityTokenService.Web.Utilities.CastleWindsor.ConfigurationSpecificInstallerBase.cs. Specifically, in the RegisterIDbConnectionStringSelector
method you need to replace:
container.Register(Component .For<IDbConnectionStringSelector>() .ImplementedBy<LocalEducationAgencyContextConnectionStringSelector>());
...with the new code:
container.Register(Component .For<IDbConnectionStringSelector>() .Instance(new NamedDbConnectionStringSelector("Multi_LEA")));
In the web.config files for both EdFi.Dashboards.Presentation.Web and EdFi.Dashboards.SecurityTokenService.Web you need to add a connection string for Multi_LEA
that follows this pattern:
<add name="Multi_LEA" connectionString="Database=LEA_Dashboard; Data Source=(local); Persist Security Info=True; User Id=userName; Password=passWord;" providerName="System.Data.SqlClient" />