我需要将连接字符串存储在除web.config之外的其他位置。货币我使用.json文件来存储它,并使用静态类来读取它。
这是我的数据背景 -
public partial class MyDatabaseContext : DbContext
{
public MyDatabaseContext() : base()
{
Database.Connection.ConnectionString = GlobalConfig.ConnectionString;
}
}
这是GlobalConfig类
public static class GlobalConfig
{
public static string ConnectionString
{
get
{
return "Server=MyServer; Database=MyDb; Integrated Security=SSPI;";
}
}
}
我需要将提供程序名称System.Data.SqlClient
分配给上下文。我怎么能在这里做到这一点?
答案 0 :(得分:0)
可以在DbContext构造函数中加载 DbConfiguration 类
定义一个实现DbConfiguration的类(在本例中为Oracle)
public class AppDbConfiguration : DbConfiguration
{
public AppDbConfiguration()
{
// use code based configuration
SetDefaultConnectionFactory(new OracleConnectionFactory());
SetProviderServices("Oracle.ManagedDataAccess.Client",EFOracleProviderServices.Instance);
SetProviderFactory("Oracle.ManagedDataAccess.Client", new OracleClientFactory());
}
}
在您的上下文中使用
public AppDbContext(string connString) : base(connString)
{
DbConfiguration.SetConfiguration(new AppDbConfiguration());
}
不要忘记为您的提供商安装当前包(在此示例中为nuget包管理器提供的ODP.net)