Last post Jul 09, 2015 03:17 AM by Mikesdotnetting
Jul 02, 2015 04:40 PM|internetbeans|LINK
I have many databases (Over 50) that has same schema. Each one stores data of a different client. I am exposing CRUD operations through Webapi. Connection string is being changed at run time. Client passes database alias that correspond to a connection string
in my web.config file
<add name="DatabaseNameAlias" connectionString="Data Source=hhhhhxxxu.database.windows.net;Initial Catalog=MyDB;User ID=abc;password=xyz;Trusted_Connection=false;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
that works well but the issue is we have to type in 50 connection strings in my web.Config file. It's not very manageable approach. Although connection strings are stored in one common database as well but if i try to fetch them from database for each web
api call that looks bad as well. In that case i have to hit database for each web api request.
Can anyone help me with their experience. Any recommendation would be highly appreciated.
Jul 09, 2015 03:17 AM|Mikesdotnetting|LINK
You can store them in the database and then in the Application_Start event, read the values from the database into a dictionary and save that as an application level variable. Whenever you make a change to the data in the database, kill the application variable.
Whenever you need a connection string, try to read it from the variable. Check first to make sure the application variable is not null. If it is, repopulate it from the database. It's a simple form of caching, really. You only read form the database when you
need to, and you don't have to worry about app restarts whenever you mess about changing the web.config.