2011-10-13 4 views
0

SQLite를 사용하여 DAO 프로젝트를 테스트하고 있습니다. 이유는 모델이 CRUD 작업을 수행 할 수 있는지 여부를 알려주는 빠른 방법을 제공하기 때문입니다.자동 증가 지정시 SQLite에서 기본 허용

그래서 각 DAO를 테스트하고 실패를 나타내는 NUNIT 프로젝트가 있습니다.

그러나 할당 된 것으로 표시된 주 및 테이블에 자동 증가가 설정되어있는 클래스에서 SQL Server 에서처럼 삽입이 실패하지 않는 문제가 발생했습니다.

다음은 SQLite 테이블을 메모리에 만들 때 사용한 구문입니다.

CREATE TABLE dbo.Control ([ControlNumber] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,[ControlDescription] TEXT NULL ,[ControlNumeric] REAL NULL ,[ControlText] TEXT NULL ,[ControlGroupKey] INTEGER NULL) 

모델링과 관련하여 문제가 있음을 나타내는 삽입을 실패하게하려면 어떻게해야합니까?

답변

0

SQLite는 데이터 저장과 관련하여 다른 데이터베이스보다 훨씬 관대합니다. 이 실패하게 생각할 수있는 유일한 방법은 어떻게 든 쿼리를 실패하게 INSERT 트리거를 만드는 것입니다.

DAO는 테스트 프로젝트를 너무 제한적으로 만드는 자동 증가 필드에 값이 제공 될 때 DAO가 데이터베이스를 반응하는 방법을 지정하지는 않지만 필자가 알고있는 것처럼

+0

조언 해 주셔서 감사합니다. 나는 DAO가 DB가 어떻게 반응해야 하는지를 지시해서는 안된다는 데 동의하지만 우리 디자인에서는 DAO 객체를 테이블 위의 테이블 위주의 디자인 위에 쳤다. 현재 "테이블 디자인"이 많이 진행되는 프로젝트를 개편하고 있습니다. 그래서 내 SQL DB를위한 테이블 스키마를 생성하여 메모리 DB를 만들고 테스트합니다. 우리 모델의 무엇인가가 깨지면 30 초가 넘지 않습니다. 나는 그것이 최선의 방법이 아니라는 것을 안다. 그러나 현재 그것이 그것이 무엇인지 그리고 우리는 정신을 유지하면서 그것이 일하도록해야한다. – rizan