【问题标题】:Convert SQL expression to create index using Fluentmigrator使用 Fluentmigrator 转换 SQL 表达式以创建索引
【发布时间】:2021-05-13 05:43:54
【问题描述】:

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

但我不确定在创建和索引时如何添加“包含的列”。我该怎么做?

提前致谢。

【问题讨论】:

    标签: sql-server database tsql .net-core fluent-migrator


    【解决方案1】:

    听起来这个 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-21
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多