Entity Framework 연결 문자열을 편집하려면 어떻게해야합니까?


115

최근에 Entity Framework 데이터 모델 ( .edmx파일) 의 연결 문자열을 변경하기 위해 내 app.config 파일을 편집해야했습니다 . 하지만 알고 싶습니다 . 디자이너를 사용하여 EF 연결 문자열을 편집하는 방법이 있습니까?

원래 연결 문자열은 엔터티 데이터 모델 마법사에 의해 자동 생성됩니다. 그러면 연결 문자열을 변경할 수 없습니다. .edmx 디자이너의 속성 창에서 비활성화 된 상태로 유지됩니다. 가능한 경우 (app.config에서) XML을 수동으로 편집하는 것을 피하고 싶으므로 원래 마법사 화면으로 돌아가서 연결 문자열을 변경하고 도구가 app.config 파일을 편집하게하는 방법이 있는지 궁금합니다. 나를 위해.

답변:


190

app.config파일 에서 연결 문자열을 제거하는 경우 엔터티 데이터 모델 마법사를 다시 실행하면 새 연결을 만들 수 있습니다.


17
우수한. 이것이 제가 찾던 바로 그 대답입니다. 안전을 위해 기존 문자열을 삭제하지 않고 주석 처리하고 app.config 변경 사항을 저장하고 디자이너를 마우스 오른쪽 단추로 클릭 한 다음 데이터베이스에서 모델 업데이트를 선택했습니다. 그런 다음 마법사는 연결 문자열에 중요한 정보 (uid 및 pwd)를 포함 할 수 있도록합니다. 감사!
DeveloperDan

5
당신이하고있는 경우 모델을-먼저 디자이너를 마우스 오른쪽 단추로 클릭 대신 '모델에서 데이터베이스 생성'
칼 야생 당나귀

2
이것은 App.config 파일을 업데이트 한 다음 VS.NET 2012를 다시 시작해야한다는 점을 제외하고 저에게도 효과적이었습니다. App.config 파일이 변경된 것을 감지하지 못했습니다.
Garry English

2
디자이너가 연결 문자열이 삭제되었음을 인식하도록 app.config 파일에서 명시 적으로 save를 호출해야했습니다.
Rossco 2014 년

1
VS를 다시 시작하는 대신 1. app.config에서 연결 문자열을 주석 처리합니다. 2. .edmx가 포함 된 프로젝트를 다시 빌드합니다. 3. .edmx 디자인 화면을 마우스 오른쪽 단추로 클릭하고 데이터베이스에서 모델 업데이트 ...를 가져와야합니다. 연결 문자열 마법사를 시작합니다.
RIanGillis

18

아니요, 디자이너에서 연결 문자열을 편집 할 수 없습니다. 연결 문자열은 EDMX 파일의 일부가 아니며 구성 파일에서 참조되는 값일 뿐이며 속성 창에서 읽기 전용이기 때문일 수 있습니다.

응용 프로그램을 다시 빌드하지 않고 변경하려는 경우가 있으므로 구성 파일을 수정하는 것은 일반적인 작업입니다. 이것이 구성 파일이 존재하는 이유입니다.


이를 상기시켜주는 +1 : 그들이 구성 파일에 넣는다면 그것은 당신이 그것을 변경할 수 있기를 원한다는 것을 의미합니다. 나는 주로 내 변화가 오버라이드 (override) 할 수 있다는 사실에 대해 우려했다
tobiak777

edmx가 속한 프로젝트의 앱 구성에서 연결 문자열을 변경해야합니다. 최상위 애플리케이션의 구성이 아닙니다 (실행될 때 사용됨). o_0
akava 2015

9

일반적으로 Web.config에서 연결 문자열을 정의합니다. edmx를 생성하면 연결 문자열이 App.Config에 저장됩니다. 연결 문자열을 변경하려면 app.config로 이동하여 모든 연결 문자열을 제거하십시오. 이제 edmx로 이동하여 디자이너 화면을 마우스 오른쪽 단추로 클릭하고 데이터베이스 에서 모델 업데이트를 선택하고 드롭 다운에서 연결 문자열을 선택하고 다음을 클릭 하고 추가 또는 새로 고침 (원하는 항목 선택)을 클릭하고 완료합니다.

출력 창에 다음과 같은 내용이 표시됩니다.

생성 된 모델 파일 : UpostDataModel.edmx. 데이터베이스에서 메타 데이터를로드하는 데 00 : 00 : 00.4258157이 걸렸습니다. 모델 생성에는 00 : 00 : 01.5623765가 소요되었습니다. App.Config 파일에 연결 문자열을 추가했습니다.


비슷한 문제가 있지만 연결 문자열을 주석 처리하고 모델을 업데이트하고 새 연결 문자열을 선택하면 모델 내의 context.cs 클래스가 비워집니다. 컨텍스트 클래스를 생성하는 데 실패하지 않는 한 왜 이것을 수행하는지 확실하지 않습니까?
bitshift

1
그렇게해서는 안됩니다. T4 템플릿 도구가 손상되었을 수 있습니다.
DanKodi 2016

동의합니다. "안됩니다". 그러나 기본 스키마에 사소하지 않은 변경을 몇 번 이상 수행했을 때 결국 모델을 날려 버리고 새 모델을 만들어야하는 횟수를 잃었습니다. 아마도 EF7과 edmx 파일을 제거하면 도움이 될 수 있습니다. 어느 쪽이든,
이번에도 제가 한

2

텍스트 편집기에서 .edmx 파일을 열고 Schema = " your required schema "를 변경하고 app.config / web.config를 열고 연결 문자열 에서 사용자 ID와 암호를 변경 합니다 . 당신은 끝났습니다.


네, 해냈습니다.
ggderas

1

다음 단계를 따르십시오.

  1. app.config를 열고 연결 문자열 (파일 저장)에 주석을 추가합니다.
  2. edmx를 열고 (속성으로 이동, 연결 문자열은 비어 있어야 함) edmx 파일을 다시 닫습니다.
  3. app.config를 열고 연결 문자열 (파일 저장)의 주석 처리를 제거합니다.
  4. edmx를 열고 속성으로 이동하면 연결 문자열이 업데이트 된 것을 볼 수 있습니다 !!
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.