Мне нужно использовать 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();
но там написано:
Индекс с именем 'IX_UniqueLoad' для таблицы 'dbo.Stop' имеет такой же порядок столбцов «-1» указан для столбцов «LoadId» и «LocationId». Убедитесь, что для IndexAttribute используется другое значение заказа каждый столбец индекса из нескольких столбцов.
Как это сделать?
Я нашел решение:
this.HasIndex(p => new { p.LoadId, p.LocationId, p.StopAction }).IsUnique();
оно сгенерирует:
CreateIndex("dbo.Stop", new[] { "LoadId", "LocationId", "StopAction" }, unique: true);