2016-10-17 8 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私たちは、直感的に使用するだけで既存のコードベースに混乱を与えないようにするために、PRに開放しています – mythz

関連する問題