SHORT VERSION:是否可以以及如何在web.config文件中定义一个我可以在其中使用的变量。
我是一家公司的新手,也是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 Identity Code First使用,我现在还不知道 那些是什么。
问题:我不断更改连接字符串值以使用不同的计算机/环境/数据库等进行测试,并且修改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应用程序依赖于Database First Entity Framework和Code First .NET Identity,是否真的不可能使用一个连接字符串?
答案 0 :(得分:0)
所有 EF项目都有一个dbContext文件。因此,您可以在一个解决方案中使用多个EF项目(Code First,DB first)。
是的,显然可能......在代码中,首先你的db上下文可以得到你想要的每个ConnectionString
的名字!..像这样:
public class AppContext : DbContext
{
public AppContext() : base("ConString Name")
{
}
}
因此您可以将连接字符串名称更改为另一个...类似DefaultConnectionString1到DefaultConnectionString12或1000 ... 并且您可以使用多个数据库上下文来处理多个数据库...
Code中的首先来自数据库......所以在项目的每个部分中你都可以创建你喜欢的dbcontext
的实例。并对此进行CRUD操作..