gpt4 book ai didi

c# - EF 6.2 的多个复合索引

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:01 25 4
gpt4 key购买 nike

拥有这个实体和 map (简化):

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 列?我该如何解决?

最佳答案

EntityFramework github 中当前有一个针对您的问题的开放问题:https://github.com/aspnet/EntityFramework6/issues/460

有一个尚未合并的 PR 来解决问题 https://github.com/aspnet/EntityFramework6/pull/534 .预计发布版本为 6.3.0。

您可能希望手动编写迁移以解决当前的问题。

关于c# - EF 6.2 的多个复合索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50596986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com