Это использует ядро asp.net 2.0, EF, Visual Studio 2017, SQL Server 2016 и создание миграции базы данных через консоль диспетчера пакетов с помощью инструмента «add -igration» в консоли диспетчера пакетов.
У меня есть простое отношение «многие ко многим», настроенное, как показано ниже, 2 таблицы и третья «таблица присоединения»:
public class TblTrack
{
public int ID { get; set; }
...
//Navigation properties
public List<TblProductItem> ProductItems { get; set; }
}
public class TblProduct
{
public int ID { get; set; }
...
//Navigation properties
public List<TblProductItem> ProductItems { get; set; }
}
public class TblProductItem
{
[Key]
[Required]
public int ProductID { get; set; }
[Key]
[Required]
public int TrackID { get; set; }
//Navigation properties
public TblProduct Product { get; set; }
public TblTrack Track { get; set; }
}
Это из миграции (сгенерированной в PMC) для создания таблицы объединения:
migrationBuilder.AddPrimaryKey(
name: "PK_tbl_ProductItems",
table: "tbl_ProductItems",
columns: new[] { "ProductID", "TrackID" });
migrationBuilder.CreateIndex(
name: "IX_tbl_ProductItems_TrackID",
table: "tbl_ProductItems",
column: "TrackID");
Пожалуйста, кто-нибудь может объяснить:
Какова цель индекса IX_tbl_ProductItems_TrackID
?
Почему индекс был создан для TrackID
, но не для ProductID
?
Существуют ли другие параметры, определяющие, какие индексы будут создаваться при миграции?