2013-03-20 5 views
2

db가 int에서 bigint로 마이그레이션 중입니다. 마이그레이션 된 파티션에서 bigint로 저장된 테이블에는 열 이름이 있고 다른 파티션에는 마이그레이션 될 int로 저장되는 열 이름이 있습니다. 단일 datacontext를 사용하여 두 데이터베이스를 모두 쿼리 할 수 ​​있는지 궁금합니다. 내가 int로 열 이름을 정의한 db-> 테이블에서 bigint와 쿼리로 dbml을 가질 때. 아래 오류 메시지가 표시됩니다.int 값이 dbint에서 bigint로 변경됩니다

지정된 캐스트가 유효하지 않습니다. 에서 System.Data.SqlClient.SqlBuffer.get_Int64() at System.Data.SqlClient.SqlDataReader.GetInt64 (Int32 i)

답변

1

해결 방법 : 올바른 데이터 형식으로 모든 테이블을 올바르게 선언해야합니다. 그런 다음 쿼리의 일부로 변환하십시오. 예 :

tableBigint.Select(x => x.ID) 
tableInt.Select(x => (long)x.ID) 

이제 유형은 또한 직렬화 작품과 일치하기 때문에 (당신이 그들과 함께하고 싶은 또는 무엇이든) 그 조합 할 수있을 것입니다.

+0

죄송합니다. 이해해주세요. 더 자세히 설명해주세요. 마이그레이션되는 파티션이 거의 없기 때문에 테이블 이름은 동일하게 유지됩니다. –

관련 문제