2016-05-31 2 views
0

릴리스 노트에 따르면 우리 npgsql을 2.x에서 3.x로 업데이트 한 이유는 + n과 함께 JSONB 열을 쿼리하는 동안 발생했던 문제가 해결 되었기 때문입니다. 200k 개의 행 (where 문에 +2 "OR"절이 포함 된 쿼리)Npgsql 포트 2.x에서 3.x/'NpgsqlTypes.BitString'

실제 문제는 linq2db를 사용하여 로그인 테이블에 액세스하려고하면 예외가 발생한다는 것입니다. "어셈블리에서 형식 'NpgsqlTypes.BitString'를로드 할 수 없습니다 'Npgsql, 버전 = 3.1.3.0, 문화 = 중립, PublicKeyToken = 5d8b90d52f46fda7'."

나는 linq2db를 업데이트 시도하고 나는 가지 다른 오류가 발생했습니다 : "KeyWord Excpetion".

여러분 모두가이 문제를 여물 가서 어떻게 사용 쿼리

var user = (from u in db.Usuario 
       where u.Email == model.UserName 
        && u.Senha == model.Password 
       select u).FirstOrDefault(); 

다음? 이 문제를 어떻게 해결할 수 있습니까?

나는 분명히 말해 주었으면 좋겠습니다. 미리 감사드립니다.

답변

1

3.0의 마이그레이션 노트에서 언급했듯이 Npgsql의 BitString 유형은 3.0에서 제거되었으며 표준 .NET 유형 BitArray로 대체되었습니다. 코드를 변경해야합니다.

+0

미안하지만, 개발의 새로운 세계에서 나에게 힌트를 줄 수 있습니까? 모든 문서는 apreciated 될 것입니다 –

+0

나는 당신의 코드가 어떻게 생겼는지 전혀 모른다. 다시 컴파일하여 시작하면 BitString이 없기 때문에 컴파일 오류가 발생합니다. .NET BitArray에서 BitString을 사용하는 장소를 대체해야합니다. MSDN 문서는 다음과 같습니다. https://msdn.microsoft.com/en-us/library/system.collections.bitarray(v=vs.110) .aspx –

+0

Shay Rojansky, 감사드립니다. 많은 연구 끝에, 나는 대답을 얻었고 그것은 매우 간단합니다. 나는 내 코드에 직접 BitString을 가지고 있지 않지만 내 오래된 linq2db를 가지고 있다고 생각했다. 그런 다음 Linq 버전을 업데이트하고 연결 문자열에서 KeyWord "프로토콜"을 제거했습니다. 이 매개 변수는 사용되지 않습니다. 당신은 그 계시를 알고 있습니까? 양해 해 줘서 고맙습니다. –