传递动态连接字符串以使用EF 6执行数据库操作

时间:2018-07-10 06:01:43

标签: c# asp.net-web-api entity-framework-6

我创建了一个Web API,并使用Entity Framework 6进行数据库操作,我具有以下机制来从数据库获取数据。

<connectionStrings><add name="DB" connectionString="server=DESKTOP-DB; uid=sa;pwd=111111;database=EmpDB;" providerName="System.Data.SqlClient" /></connectionStrings>

public void SaveData(string data1, long data2){
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Microsoft.Practices.EnterpriseLibrary.Data.Database db = factory.Create("DB");
DbCommand dbCommand = db.GetStoredProcCommand("EmpSave");
using (DbConnection connection = db.CreateConnection())
{
    DbTransaction trans = null;
    try
    {
        trans = connection.BeginTransaction();
        db.AddInParameter(dbCommand, "@EMPID", DbType.Int64, data2);
        db.AddInParameter(dbCommand, "@name", DbType.String, data1);
        db.ExecuteNonQuery(dbCommand, trans);
        trans.Commit();
    }
    catch (Exception ex)
    {
        trans.Rollback();
        throw ex;
    }
    finally
    {
        trans.Dispose();
        connection.Close();
    }
}

}

现在,我想对数据库操作使用动态连接字符串,这意味着在请求中我将收到一个参数,基于参数值,我将从DB / XML中检索连接字符串并在DB操作中使用该字符串,因此将存储数据根据请求中收到的参数值。

请指导我如何使用上述机械装置实现这一目标。

感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

假设您的连接字符串位于app.config中,名称为“ DB”。 您可以使用以下方法:

if(parameter1)
{ 
   string connString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
}