2016-10-17 4 views
3

ServiceStack.OrmLite에서 만든 일부 MSSQL 테이블이 있는데 프로그래밍 방식으로 일부 열의 유형을 변경하거나 그 중 일부를 삭제하고 다시 작성하고 싶습니다 (다른 유형). 문제는 인덱스 중 일부 ([Index]/[CompositeIndex] 속성에서 OrmLite로 생성)에서도 사용할 수 있다는 것입니다. OrmLite에게 특정 컬럼에 의해 사용 된 모든 인덱스를 삭제하고 생성하도록 요청하는 쉬운 방법이 있습니까?ServiceStack OrmLite에서 인덱스를 삭제하고 다시 작성하십시오.

IDbConnection.CreateIndex가 있음을 발견했으나 복합 인덱스의 경우에는 작동하지 않습니다. IDbConnection.DropIndex도 있지만 인덱스의 이름이 필요합니다.

답변

2

OrmLiteSchemaModifyApi 클래스의 유일한 DDL API 인 OrmLite가 제공하는 API는 "열의 색인 삭제/다시 작성"이라는 API가 없습니다.

프로그래밍 방식으로 수행하려는 다른 모든 테이블 수정에는 db.ExecuteSql을 사용해야합니다.

+0

좋습니다. 감사합니다. 이런 식으로 구현 된 홍보에 참여 하시겠습니까? 필자는 API를 다음과 같이 구상합니다. 지정된 열 (복합 인덱스 포함)을 사용하는 모든 인덱스를 삭제/작성하는 열과 메소드의 인덱스를 삭제하는 메소드. 어쩌면 모든 인덱스를 삭제/생성하는 방법도 도움이 될 것입니다. 이는 CreateTable에서 사용하는 기존 기능을 노출하는 것일뿐입니다. – EM0

+1

@ EM0 우리는 사용하기 쉽고 기존 코드 기반에 방해가되지 않는 홍보에 개방적입니다. – mythz

관련 문제