2014-01-31 1 views
0

기존 데이터베이스와 백업 파일 (.bak)을 구별하는 응용 프로그램을 개발 중입니다. 일반적으로 SQL Server에서 데이터를 연결하고 검색 할 때 Linq를 사용하는 것이 더 좋습니다. 쿼리를 작성할 때이 방법을 사용하는 것이 더 쉽기 때문입니다.복원 된 데이터베이스를 쿼리 할 때 유용한 정보

이 경우 어떻게 할 수 있는지 알지 못합니다. 내 절차는 데이터베이스 (.bak 파일)를 복원하기위한 SQL 쿼리로 문자열을 구성한 다음 현재 데이터와 다른 데이터를 검색하는 것입니다. , 이것으로.

내가 사용하는 모든 쿼리는 데이터베이스 이름과 스키마를 추가하기 위해 형식화하는 문자열입니다. 내가 사용하고있는 문자열이 꽤 커지면 코드가 매우 복잡해집니다 (나는 깨끗한 코드를 좋아합니다).

데이터베이스의 구조는 모두 동일하며 다른 백업 또는 실제 거래간에 변경되지 않습니다. 새로운 백업은 매일 발생하고 점검해야하기 때문에 새 백업이있을 때마다 새 연결 파일을 추가하고 추가하는 것은 실제로 옵션이 아닙니다.

Linq을 사용하여 데이터베이스를 복원하고 Linq 쿼리를 사용하여 데이터를 검색 할 수있는 방법이 있습니까? 아니면 제가해야 할 일입니까?

답변

0

Linq를 쿼리에만 사용할 수 있으므로 데이터베이스를 복원하는 데 사용할 수 없습니다.

동일한 Linq 쿼리에서 다른 데이터베이스를 사용할 수는 없지만 this answer에서 볼 수 있듯이 데이터베이스에 대한 각 쿼리의 결과를 구체화하고이를 기반으로 세 번째 Linq 쿼리를 만들 수 있습니다.

+0

그래서 일반 쿼리를 사용하여 데이터베이스를 만들 수 있다면 Linq를 사용하여 데이터를 가져올 수 있습니까? – Sander

+0

네,하지만 백업 데이터베이스와 관련된 컨텍스트가 필요합니다. 각각의 데이터베이스에 대해 하나씩 두 개를 생성 한 다음 동적으로 복원을 수행하여 (즉, 해당 복원 된 데이터베이스의 내용을 변경하거나) 단순히 백업 데이터베이스를 가리켜 컨텍스트를 재사용 할 수 있습니다 (스키마는 같은). 난 당신이 단순히 복원 데이터베이스를 가리키는 다른 연결 문자열을 사용하여 후자를 수행 할 수 있는지 확실하지 않습니다. – jnovo

관련 문제