Include Page |
---|
| _Previous Version Note |
---|
| _Previous Version Note |
---|
|
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.
Code Block |
---|
|
<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> |
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:
Code Block |
---|
|
public class ConfigurationSpecificInstallerBase : Core.Utilities.CastleWindsor.ConfigurationSpecificInstallerBase |
Next, override the default implementation of RegisterIDbConnectionStringSelector
:
Code Block |
---|
|
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:
Code Block |
---|
|
container.Register(Component
.For<IDbConnectionStringSelector>()
.ImplementedBy<LocalEducationAgencyContextConnectionStringSelector>()); |
...with the new code:
Code Block |
---|
|
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:
Code Block |
---|
|
<add name="Multi_LEA" connectionString="Database=LEA_Dashboard; Data Source=(local); Persist Security Info=True; User Id=userName; Password=passWord;" providerName="System.Data.SqlClient" /> |