使用 Fluentmigrator 转换 SQL 表达式以创建索引
Convert SQL expression to create index using Fluentmigrator
我在 .Net Core 3.1 中有一个使用 SQL 服务器数据库的应用程序,其中我有这个 SQL 表达式,我想将其“转换”为流畅的迁移器表达式,但是我'我不确定该怎么做。
CREATE NONCLUSTERED INDEX [nci_wi_XXXXXX] ON [dbo].[MyTable]
([MyColumn1], [MyColumn2]) INCLUDE ([MyColumn3], [MyColumn4], [MyColumn5],
[MyColumn6], [MyColumn7], [MyColumn8], [MyColumn9]) WITH (ONLINE = ON)
我想用类似于这个的表达式来表示:
Create.Index("nci_wi_XXXXXX")
.OnTable("MyTable")
.OnColumn("MyColumn1").Unique()
.OnColumn("MyColumn2").Unique()
.WithOptions().NonClustered()......
但我不确定如何在创建和索引时添加“包含的列”。我该怎么做?
提前致谢。
听起来像这个 PR 已经包含了这个功能:https://github.com/fluentmigrator/fluentmigrator/pull/409
您可以按照以下方式进行:
Create.Index("nci_wi_XXXXXX")
.OnTable(nameof(MyTable))
.OnColumn(nameof(MyTable.MyColumn1)).Ascending()
.OnColumn(nameof(MyTable.MyColumn2)).Ascending()
.WithOptions()
.Include(nameof(MyTable.MyColumn3))
.Include(nameof(MyTable.MyColumn4))
.Include(nameof(MyTable.MyColumn5))
.Include(nameof(MyTable.MyColumn6))
.Include(nameof(MyTable.MyColumn7))
.Include(nameof(MyTable.MyColumn8))
.Include(nameof(MyTable.MyColumn9))
.Online()
.NonClustered();
我在 .Net Core 3.1 中有一个使用 SQL 服务器数据库的应用程序,其中我有这个 SQL 表达式,我想将其“转换”为流畅的迁移器表达式,但是我'我不确定该怎么做。
CREATE NONCLUSTERED INDEX [nci_wi_XXXXXX] ON [dbo].[MyTable]
([MyColumn1], [MyColumn2]) INCLUDE ([MyColumn3], [MyColumn4], [MyColumn5],
[MyColumn6], [MyColumn7], [MyColumn8], [MyColumn9]) WITH (ONLINE = ON)
我想用类似于这个的表达式来表示:
Create.Index("nci_wi_XXXXXX")
.OnTable("MyTable")
.OnColumn("MyColumn1").Unique()
.OnColumn("MyColumn2").Unique()
.WithOptions().NonClustered()......
但我不确定如何在创建和索引时添加“包含的列”。我该怎么做?
提前致谢。
听起来像这个 PR 已经包含了这个功能:https://github.com/fluentmigrator/fluentmigrator/pull/409
您可以按照以下方式进行:
Create.Index("nci_wi_XXXXXX")
.OnTable(nameof(MyTable))
.OnColumn(nameof(MyTable.MyColumn1)).Ascending()
.OnColumn(nameof(MyTable.MyColumn2)).Ascending()
.WithOptions()
.Include(nameof(MyTable.MyColumn3))
.Include(nameof(MyTable.MyColumn4))
.Include(nameof(MyTable.MyColumn5))
.Include(nameof(MyTable.MyColumn6))
.Include(nameof(MyTable.MyColumn7))
.Include(nameof(MyTable.MyColumn8))
.Include(nameof(MyTable.MyColumn9))
.Online()
.NonClustered();