使用 ServiceStack 创建复合索引
Create composite index with ServiceStack
我想使用 CreateIndex()
创建一个复合索引,就像我可以为单个列索引那样做,例如:
db.CreateIndex<NetworkPart>(np => np.NetworkId);
这可能吗?
我的 class 看起来像这样,我想在现有数据库上创建新添加的复合索引 table:
[CompositeIndex(true, nameof(NetworkPart1), nameof(NetworkPart2))]
public class NetworkPart
{
[Required]
[Index]
public Guid NetworkId { get; set; }
[Required]
public string NetworkPart1 { get; set; }
[Required]
public string NetworkPart2 { get; set; }
}
[CompositeIndex]
属性仅用于定义 OrmLite 使用 db.CreateTable<T>
创建的 table 定义,即它们不用于在运行时创建索引。
到目前为止,我只能看到不需要额外工具的方法:
var createIndexStatements = db.GetDialectProvider().ToCreateIndexStatements(typeof(NetworkPart));
var createIndexStatement = createIndexStatements.FirstOrDefault(stmt => stmt.Contains("uidx_networkpart_networkpart1_networkpart2"));
db.ExecuteSql(createIndexStatement);
我想使用 CreateIndex()
创建一个复合索引,就像我可以为单个列索引那样做,例如:
db.CreateIndex<NetworkPart>(np => np.NetworkId);
这可能吗?
我的 class 看起来像这样,我想在现有数据库上创建新添加的复合索引 table:
[CompositeIndex(true, nameof(NetworkPart1), nameof(NetworkPart2))]
public class NetworkPart
{
[Required]
[Index]
public Guid NetworkId { get; set; }
[Required]
public string NetworkPart1 { get; set; }
[Required]
public string NetworkPart2 { get; set; }
}
[CompositeIndex]
属性仅用于定义 OrmLite 使用 db.CreateTable<T>
创建的 table 定义,即它们不用于在运行时创建索引。
到目前为止,我只能看到不需要额外工具的方法:
var createIndexStatements = db.GetDialectProvider().ToCreateIndexStatements(typeof(NetworkPart));
var createIndexStatement = createIndexStatements.FirstOrDefault(stmt => stmt.Contains("uidx_networkpart_networkpart1_networkpart2"));
db.ExecuteSql(createIndexStatement);