2013-08-20 2 views
7

내 프로젝트에서 SQLite를 사용하고 DB에 연결하기 위해 sqlite-net 라이브러리를 사용합니다.bool 열을 쿼리하면 항상 false가 반환됩니다.

internal class Product 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 

    public string Name { get; set; } 

... 

    public bool IsDefault { get; set; } 
} 

데이터베이스에 레코드가 몇 개 있습니다. 일부는 IsDefault 열 값이 true로 설정되고, 일부는 false로 설정됩니다. 그러나 다음과 같은 레코드를 쿼리하려고하면 :

var result = dc.Table<Product>().ToArray(); 

모든 레코드의 IsDefault는 false로 설정됩니다. 레코드를 삽입해도 정상적으로 작동하지만 쿼리는 제대로 작동하지 않습니다.

열 유형을 bool로 변경했을 때? 모델에서는 null을 반환합니다.

편집 ---- 어떤 이상한 것은 내가 뭔가를 나에게 기록의 정확한 수를 반환 쿼리를

var t = dc.Table<Product>().Where(i => i.IsDefault == true).ToArray(); 

을 실행할 때이지만, 그렇다고하더라도 배열의 모든 항목이 false로 설정 IsDefault있다 .

+0

직류 객체 타입 SQLiteConnection이다를 사용해야합니다. 테이블 - 그것은 괄호 안에 주어진 타입에 대한 질의 가능한 인터페이스입니다 (sqlite-net의 일부입니다). – ksalk

+1

방금 ​​sqlite-net 라이브러리를 확인하고 그것이 무엇인지 발견했습니다. 정수로 사용하고 bool로 캐스팅 했습니까? 근원에 bool가 어디에서든지 정의되는 것처럼 보이지 않는다. – Prix

+0

예, 타입을 int로 변경하려고 시도했습니다.이 경우 항상 0을 반환합니다. – ksalk

답변

관련 문제