컨텍스트 연결 사용 = SqlConnection에 대해 true

c# dapper

문제

저는이 간단한 수업을 가지고 있습니다 :

public abstract class BaseDaService
{
    private readonly string _connectionString;

    protected BaseDaService(string connectionString)
    {
        _connectionString = connectionString;
        }

        protected IDbConnection OpenConnection()
    {
        IDbConnection connection = new SqlConnection(_connectionString);
        connection.Open();
        return connection;
        }
}

여기서 연결 문자열은 설정 파일에서옵니다. 다음과 같이 설정 파일의 자격 증명을 사용하고 싶습니다.

새로운 SqlConnection ( "context connection = true")

구성 파일에서 연결 문자열을 변경하거나 IDbConnection의 '연결'인스턴스를 조작하여이를 수행 할 수 있습니까?

수락 된 답변

SqlConnectionStringBuilder 클래스를 사용하는 것이 좋습니다.

 // With a default parameter set to false you can still use
 // the same code as before and change only the spots where
 // the context is required
 protected IDbConnection OpenConnection(bool useContext = false)
 {

    string newConString = _connectionString;
    if(useContext)
    {
        SqlConnectionStringBuilder scs = new SqlConnectionStringBuilder(_connectionString);
        scs.ContextConnection = true;
        newConString = scs.ToString();
    }
    IDbConnection connection = new SqlConnection(newConString);
    connection.Open();
    return connection
}

물론 app.config를 변경하는 것은 기본 설정에 불과합니다.


인기 답변

SqlConnectionStringBuilder 를 사용하여 이미 구성 파일에서 검색 한 연결 문자열을 변경할 수 있습니다. 즉, 원본 연결 문자열을 읽기 전용으로 유지할 수 있습니다.

SqlConnectionStringBuilder sqlb = new SlConnectionStringBuilder(_connectionString); 
sqlb.ContextConnection = true;
string modifiedConnString = sqlb.ToString();


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.