2011-10-31 3 views
0

Visual Studio에서 LinqToSql 디자이너를 사용하여 DAL을 생성하는 웹 응용 프로그램 프로젝트에서 작업하고 있습니다. 모든 데이터 액세스 논리는 별도의 프로젝트에 있습니다.LinqToSQl 데이터 소스 변경

테이블, 뷰 등의 구조와 이름이 같은 데이터베이스 사본을 만들었습니다. 연결 문자열을 새 소스로 변경하려고했지만 작동하지 않습니다. 여하튼, 그것은 여전히 ​​이전 데이터베이스에 액세스합니다. 다음과 같은 변경의

모든 실패 :

  • 이제 새 데이터 소스를 가리키는 솔루션의 모든 프로젝트에 대한 설정 파일에 연결 문자열을 변경.
  • Visual Studio LinqToSql 디자이너 속성에서 연결 문자열을 "none"으로 변경 한 후 DataContext의 부분 클래스를 만들고 새 연결 문자열을 생성자에 전달했습니다.
  • DataContext를 인스턴스화 할 때마다 연결 문자열을 명시 적으로 전달했습니다.
  • LinqToSql 프로젝트의 bin 및 obj 폴더 내용을 삭제하고 모든 것을 다시 빌드합니다.

내 프로젝트는 새 데이터를 새 데이터 소스에 저장하지만 데이터를 읽을 때 이전 데이터베이스에서 데이터를 가져오고 데이터에 대해 이전 DB에 연결할 때 null 예외가 발생합니다.

내가 뭘 잘못하고 있니? 이 문제가 수정 되었습니까? LinqToSql DataContext로 프로젝트를 만드는 가장 좋은 방법은 동일한 데이터 (예 : dev, staging, release 등)를 가진 새로운 데이터 소스를 가리 킵니까? 감사.

+1

솔루션 문자열에 대한 해결책 찾기를 수행 했습니까? 당신이 모르는 어딘가에 머물고 있을지도 모릅니다. – rossisdead

답변

1

이전 데이터베이스에서 데이터를 읽는 경우 업데이트되지 않은 프로젝트에 연결 문자열 또는 유사 문자가 있어야합니다. app.config 파일에서

  • :

    세 SQL 디자이너에 LINQ 이전 연결 정보를 저장 할 수있는 곳이 있습니다.

  • Settings.settings 파일에서.
  • DataContext의 기본 생성자입니다.

모두 확인하십시오.

'찾기'를 사용하여 전체 솔루션에서 응용 프로그램에 하드 코딩 된 이전 데이터베이스에 대한 다른 참조를 검색 할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 세 가지를 모두 확인했고 모두가 새로운 데이터 소스를 가리키고 있습니다. – Flowerking

+1

@Flowerking : 그럼 '모든 파일에서 찾기'가 최선의 방법입니다. 그것이 아무것도 찾지 못하면 소스와 바이너리가 동기화되지 않을 수 있습니다. –

+0

전체 솔루션에서 구성 파일의 주석 문자열을 가리키는 참조를 찾으려고했습니다. 당신이 제안한 바이너리의 문제 일 수 있습니다. – Flowerking