簡短版本:是否有可能以及如何在web.config文件中定義一個變量,我可以在其中使用它。多連接字符串的MVC WebConfig變量
我是新來的公司,也是C#MVC Web應用程序的初學者開發人員。我一直負責維護和測試在一個web.config文件中具有多個連接字符串的Web應用程序。這些連接字符串,然而,在這相同的價值觀,如:
<connectionStrings>
<add name="DefaultConnection" connectionString="provider=System.Data.SqlClient;provider connection string="data source=SUPERCOMPUTER\SQLEXPRESS2012;initial catalog=HumanResourceDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DefaultConnection3" connectionString="Data Source=SUPERCOMPUTER\SQLEXPRESS2012;Initial Catalog=HumanResourceDB;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
正如你可以看到,這兩個的區別僅僅是連接的名稱。由於我是一個初學者,我不完全知道爲什麼這個應用程序必須使用2個具有不同名稱的相同連接字符串。我被告知一個正在被Database First實體框架使用,另一個正在被ASP.NET身份代碼優先使用,我不知道現在這些是什麼。
問題:我正在不斷改變連接字符串值來測試不同的機器/環境/數據庫等,需要修改2連接字符串真的讓我放慢腳步。
問題:是否可以使用我可以在Web配置文件的頂部聲明並在連接字符串中使用它的變量,以便我可以修改變量值。事情是這樣的:
var Server = SUPERCOMPUTER\SQLEXPRESS2012
var IntegratedSecurity = true
var database = HumanResourceDB
var user = databaseusername
var password = databasepassword
<connectionStrings>
<add name="DefaultConnection" connectionString="... data source=**Server**;initial catalog=**database**;integrated security=**IntegratedSecurity **;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DefaultConnection3" connectionString="Data Source=**Server**;Initial Catalog=**database**;Integrated Security=**IntegratedSecurity**" providerName="System.Data.SqlClient" />
</connectionStrings>
另一個問題:難道真的不可能使用一個連接字符串,如果MVC應用程序依賴於這兩個數據庫第一實體框架和代碼首先.NET身份?
有很多事情你可以做。最簡單的事情(因爲它非常可以googleable)可能是使用配置轉換。 – Crowcoder
你的研究表明了什麼?您可以使用配置轉換,或者在代碼中使用不同的連接字符串名稱(「Default_Env_1」,「Default_Env_2」),其中每個不同的名稱指向不同的數據庫。 – CodeCaster