是否可以将ConnectionStrings和mailSettings与web.config分开?
由于开发和测试,开发环境对连接字符串和smtp邮件具有不同的IP地址.我们不想使用实时机器和实时IP地址进行测试和开发.
可能吗?
我正在开发一个DataBase First EF应用程序,并且自动生成的代码和app.config部分的所有工作都很好。但是,当我尝试删除app.config的连接字符串并将其作为参数放在DbContext构造函数上时,我无法使其正常工作。
app.config中的连接字符串:
<add name="EntityContext"
connectionString="metadata=res://*/ModelHistory.csdl|res://*/ModelHistory.ssdl|res://*/ModelHistory.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=XXXXX;PASSWORD=xxxxx;PERSIST SECURITY INFO=True;USER ID=XXXX""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
我试图通过构造函数传递它:
public EntityContext() : base(GetConnectionString()) { }
private string GetConnectionString()
{
return metadata=res://*/ModelHistory.csdl|res://*/ModelHistory.ssdl|res://*/ModelHistory.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=XXXXX;PASSWORD=xxxxx;PERSIST SECURITY INFO=True;USER ID=XXXX""
}
Run Code Online (Sandbox Code Playgroud)
但这会引发错误:
附加信息:如果在Code First模式下使用T4模板为Database First和Model First开发生成的代码可能无法正常工作。要继续使用数据库优先或模型优先,请确保在正在执行的应用程序的配置文件中指定了实体框架连接字符串。要使用从Database First或Model First生成的这些类以及Code First,请使用属性或DbModelBuilder API添加任何其他配置,然后删除引发此异常的代码。