微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Fluentmigrator 转换 SQL 表达式以创建索引

如何解决使用 Fluentmigrator 转换 SQL 表达式以创建索引

我在 .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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。