4

로컬에서 개발하는 동안 MultipleActiveResultSets가 TRUE로 설정된 연결 문자열을 설정했습니다. 그러나, 내 애플 리케이션을 배포하고 sequelizer connectionString 주입되면, MultipleActiveResultSets은 빠져있다. 여하튼 MultipleActiveResultSets를 활성화하거나 연결 문자열을 업데이트 할 수 있습니까?sequelizer 추가 기능이있는 appharbor에서 실행중인 응용 프로그램에서 MultipleActiveResultSets를 활성화하려면 어떻게합니까?

나는 그런 식으로 Entity Framework 4.1을 사용하고 있습니다.

+0

내가하면 생각 나머지에 대한 EntityConnectionStringBuilder를 사용할 필요가 삽입 된 SQLSERVER_CONNECTION_STRING보다는 자체 연결 문자열을 사용하십시오. appharbor이 DB를 이동하기로 결정하면 앱이 중단됩니다. –

답변

7

업데이트 : Sequelizer 관리 패널을 사용하여 삽입 된 연결 문자열에 대해 MARS (Multiple Active Result Sets)를 활성화 할 수 있습니다. 이것은 시작

URI가 응용 프로그램 web.config에 주입에서 당신은 ConnectionString을을 구성 할 수 있습니다 동안 AppDomain 다시로드의 원인이되는 web.config 더 이상 수정해야하기 때문에 권장되는 방법입니다. 이 과정은 here를 설명하지만 너무 아래의 스 니펫을 포함하고 있습니다 :

var uriString = ConfigurationManager.AppSettings["SQLSERVER_URI"]; 
var uri = new Uri(uriString); 
var connectionString = new SqlConnectionStringBuilder 
{ 
    DataSource = uri.Host, 
    InitialCatalog = uri.AbsolutePath.Trim('/'), 
    UserID = uri.UserInfo.Split(':').First(), 
    Password = uri.UserInfo.Split(':').Last(), 
    MultipleActiveResultSets = true, 
}.ConnectionString; 

참고 MultipleActiveResultSets = true. 당신은 또한 비 코드 - 먼저 ConnectionString을 구축해야하는 경우

, 당신은, 예를 들면 :

var builder = new EntityConnectionStringBuilder(); 
builder.ProviderConnectionString = connectionString; 
builder.Metadata = "somemetadata"; 
builder.Provider = "System.Data.SqlClient"; 

(또한 answered on the AppHarbor support forum)

+0

응답 해 주셔서 감사합니다! 언제/어디에서 연결 문자열을 만들 수 있습니까? 한 번에 앱 시작에 충분합니까? 또는 sequalizer 연결 문자열이 내 앱의 수명 내내 동적으로 변경되며 업데이트해야합니까? 나는이 부분이 내가 잃어버린 곳이라고 생각한다. – stephen776

+0

마치이 코드를 앱 시작에서 실행했는지 여부와 관계없이 연결 문자열이 여전히 내 웹 설정 (MARS를 사용하지 않고 설정 한 경우)으로 주입되는 것처럼 보입니다. – stephen776

+0

수정 된 connectionstring을 사용하도록 EF 컨텍스트 생성자를 수정할 수 있습니다 (https://github.com/friism/folketsting/blob/master/FT.Data/DB.Designer.cs#L81 – friism

관련 문제