문제

MySQL 및 PostgreSQL을 사용하여 SVN 트렁크에서 DBLINQ-0.18 및 DBLINQ를 테스트하고 있습니다. 매우 간단한 쿼리 만 사용하고 있지만 두 데이터베이스에서 DBLINQ는 WHERE 절을 생성하지 않습니다. DBLINQ가 보내는 요청이 정확히 확인하기 위해 PostgreSQL의 명령문을 켜서이를 확인했습니다.

내 LINQ 쿼리는 다음과 같습니다.

MyDB db = new MyDB(new NpgsqlConnection("Database=database;Host=localhost;User Id=postgres;Password=password"));

var customers = from customer in db.Customers
                where customer.CustomerUserName == "test"
                select customer;

쿼리는 작동하지만 dblinq에 의해 생성 된 SQL은 다음과 같습니다.

select customerusername, customerpassword .... from public.customers

LINQ 쿼리를 실행하기 전에 DBLINQ가 전체 테이블을 끌어 내려야한다는 것을 의미하는 위치는 없습니다.

DBLINQ에 대한 경험이있는 사람이 있고 내가 무엇을 잘못 할 수 있는지 알고 있습니까?

도움이 되었습니까?

해결책

나는 문제를 발견했고 dblinq와는 아무 관련이 없습니다.

나는 Ironruby에서 일부 물건을 테스트하고 있었고 그 안에 System.data.linq 네임 스페이스를 복제하는 Microsoft.scripting.core라는 어셈블리가 있습니다 (내가 모르는 이유).

Core Assembly Microsoft.scripting.core를 참조하여 테스트 DBLINQ 앱은 정상으로 컴파일하고 실행되지만 SQL에 WHERE 절을 누락합니다. 어셈블리 참조를 제거하면 WERE 절이 올바르게 생성되었습니다.

다른 팁

프로덕션 코드에는 DBLINQ를 사용하지 않습니다 ... 많은 LINQ-TO-SQL 기능이 구현되지 않았으며 소스 코드를 통과하는 수준의 성숙도가 낮습니다 ... 많은 방법이 구현되거나 표시되지 않습니다. "문명화되지 않은".

... 당신은 경고를 받았습니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top