问题描述
我在 .Net Core 3.1 中有一个使用 sql Server DB 的应用程序,我有这个 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();