2011-11-17 2 views
2

나는이DBContext

public partial class Control : DbContext 
{ 
    public Control(string conexion): base(crearConexion(conexion)) 
    { 

    } 

    public static String crearConexion(string nombreConexion) 
    { 
     string conexion = ConfigurationManager.ConnectionStrings[nombreConexion].ConnectionString; 
     SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(conexion); 
     sqlBuilder.Password = "somepassword"; 
     return sqlBuilder.ToString(); 
    } 
} 

처럼 내 DBContext의 생성자 내 문자열 연결에 암호를 추가하려고 해요에 과부하를 추가하지만 그것은 system.argumentexception keyword not supported 'metadata'

왜 내가 잘못하고있는 중이 야이 예외를 throw ??

+1

EF 문자열이 SqlConnectionStringBuilder의 실제 형식이 아닌 것 같아서 접근 방법이 바람직하지 않습니다. –

+0

문자열 연결에 암호를 추가 할 수있는 권장 사항이나 접근 방법이 있습니까 ?? – Jorge

+0

정말로, 나는 두렵습니다. 저는 큰 EF 사용자가 아니므로 연결 문자열의 뉘앙스에 익숙하지 않습니다. 나는 그들이 매우 크고 추악한 경향이 있다는 것을 회상한다. –

답변

4

EntityConnectionStringBuilder을 사용해보세요.

EF 연결 문자열 (app.config 파일 확인)을 보면 SQL Server 연결 문자열이 그 일부임을 알 수 있으며 추가 정보가 있으므로 SqlConnectionStringBuilder을 구문 분석 할 수 없습니다 :

metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=Test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"