Я работаю над API ASP.Net Core 2.1 и использую Entity Framework Core 2.1. Я использую миграции для управления изменениями в базе данных. Мое резервное хранилище данных является экземпляром Azure SQL Server.
Мне нужно добавить многопольный некластеризованный индекс в одну из моих таблиц, но мне трудно найти краткую справку о том, как это сделать в моих поисках в Google.
Я попытался использовать аннотацию данных [Index ()] в классе POCO, но она не была распознана. Итак, я предполагаю, что мне нужно сделать это в методе OnModelCreating моего класса DbContext, но я не нашел примера того, как это сделать для многополевого некластеризованного индекса.
Вот пример класса сущности
public class H1Record : EntityBase
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[ForeignKey("ShippingServicesFileId")]
public ShippingServicesFile ShippingServicesFile { get; set; }
[Required]
public int ShippingServicesFileId { get; set; }
[Column(TypeName = "varchar(20)")]
public string BatchId { get; set; }
[Column(TypeName = "varchar(34)")]
[MaxLength(34)]
public string ElectronicFileNumber { get; set; }
[Column(TypeName = "varchar(1)")]
[MaxLength(1)]
public string ElectronicFileType { get; set; }
[Column(TypeName = "varchar(8)")]
[MaxLength(8)]
public string DateOfMailing { get; set; }
[Column(TypeName = "varchar(6)")]
[MaxLength(6)]
public string TimeOfMailing { get; set; }
public DateTime MailingDateTime { get; set; }
[Column(TypeName = "varchar(1)")]
[MaxLength(1)]
public string EntryFacilityType { get; set; }
[Column(TypeName = "varchar(5)")]
[MaxLength(5)]
public string EntryFacilityZipCode { get; set; }
[Column(TypeName = "varchar(4)")]
[MaxLength(4)]
public string EntryFacilityZipPlus4 { get; set; }
[Column(TypeName = "varchar(2)")]
[MaxLength(2)]
public string DirectEntryOriginCountryCode { get; set; }
[Column(TypeName = "varchar(3)")]
[MaxLength(3)]
public string ShipmentFeeCode { get; set; }
[Column(TypeName = "varchar(6)")]
[MaxLength(6)]
public string ExtraFeeForShipment { get; set; }
[Column(TypeName = "varchar(2)")]
[MaxLength(2)]
public string ContainerizationIndicator { get; set; }
[Column(TypeName = "varchar(3)")]
[MaxLength(3)]
public string UspsElectronicFileVersionNumber { get; set; }
[Column(TypeName = "varchar(12)")]
[MaxLength(12)]
public string TransactionId { get; set; }
[Column(TypeName = "varchar(8)")]
[MaxLength(8)]
public string SoftwareVendorProductVersionNumber { get; set; }
[Column(TypeName = "varchar(9)")]
[MaxLength(9)]
public string FileRecordCount { get; set; }
[Column(TypeName = "varchar(9)")]
[MaxLength(9)]
public string MailerId { get; set; }
public ICollection<D1Record> D1Records { get; set; } = new List<D1Record>();
public ICollection<C1Record> C1Records { get; set; } = new List<C1Record>();
}
А вот и класс entitybase
public class EntityBase
{
public DateTime CreatedDate { get; set; }
public DateTime LastModifiedDate { get; set; }
public int CreatedByUserId { get; set; }
public int LastModifiedByUserId { get; set; }
public bool DeleteFlag { get; set; }
}
Я хочу создать некластеризованный индекс для ShippingServicesFileId и DeleteFlag в методе OnModelCreating моего DbContext, чтобы он подбирался, когда я запускаю надстройку-миграцию в своей консоли диспетчера пакетов.
Любые идеи?