【问题标题】:EF Fluent API - HasIndex for complex fieldEF Fluent API - 复杂字段的 HasIndex
【发布时间】:2018-09-11 04:47:50
【问题描述】:

我需要使用 Fluent API(无 DataAnnotation)并且应该创建复杂的索引(3 个字段)。我试着去做:

        this.HasIndex(p => p.LoadId).HasName("IX_UniqueLoad").IsUnique();
        this.HasIndex(p => p.LocationId).HasName("IX_UniqueLoad").IsUnique();
        this.HasIndex(p => p.StopAction).HasName("IX_UniqueLoad").IsUnique();

但它说:

表 'dbo.Stop' 上名为 'IX_UniqueLoad' 的索引具有相同的 为列“LoadId”和“LocationId”指定的列顺序为“-1”。 确保对 IndexAttribute 使用不同的顺序值 多列索引的每一列。

怎么做?

【问题讨论】:

    标签: entity-framework indexing ef-fluent-api


    【解决方案1】:

    我找到了解决方案:

    this.HasIndex(p => new { p.LoadId, p.LocationId, p.StopAction }).IsUnique();
    

    它会生成:

    CreateIndex("dbo.Stop", new[] { "LoadId", "LocationId", "StopAction" }, unique: true);
    

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多