【发布时间】:2018-11-08 20:30:36
【问题描述】:
拥有这个实体和地图(简化):
public class Payment {
public Guid Id { get; set; }
public Guid TenantId { get; set; }
public string ExternalPaymentId { get; set; }
public string PaymentId { get; set; }
public Tenant Tenant { get; set; }
}
modelBuilder.Entity<Payment>().HasKey(e => new { e.TenantId, e.Id },
config => config.IsClustered(true));
modelBuilder.Entity<Payment>().HasIndex(e => new { e.TenantId, e.ExternalPaymentId })
.IsUnique(true);
modelBuilder.Entity<Payment>().HasIndex(e => new { e.TenantId, e.PaymentId })
.IsUnique(true);
EF 生成以下迁移:
CreateTable(
"dbo.Payments",
.............................
.PrimaryKey(t => new { t.TenantId, t.Id })
.Index(t => new { t.TenantId, t.PaymentId }, unique: true)
.Index(t => t.ExternalPaymentId, unique: true, name: "IX_TenantId_ExternalPaymentId");
为什么它不在第二个索引中包含TenantId 列?我该如何解决?
【问题讨论】:
标签: c# sql .net indexing entity-framework-6