【发布时间】:2021-04-14 19:36:01
【问题描述】:
我正在使用带有 Npgsql 和代码优先方法的 Entity Framework 6.4.x。
我创建了以下实体:
public class UserBankAccountTransaction
{
public long PayerBankAccountId { get; set; }
[ForeignKey(nameof(PayerBankAccountId))]
public virtual UserBankAccount PayerBankAccount { get; set; }
public long PayeeBankAccountId { get; set; }
[ForeignKey(nameof(PayeeBankAccountId))]
public virtual UserBankAccount PayeeBankAccount { get; set; }
[Required]
public int Amount { get; set; }
}
就是这样,现在当我执行Add-Migration 时,它会创建以下迁移:
CreateTable(
"public.UserBankAccountTransactions",
c => new
{
Id = c.Long(nullable: false, identity: true),
PayerBankAccountId = c.Long(nullable: false),
PayeeBankAccountId = c.Long(nullable: false),
Amount = c.Int(nullable: false),
CreatedDate = c.DateTime(nullable: false),
ModifiedDate = c.DateTime(nullable: false),
})
.PrimaryKey(t => t.Id)
.ForeignKey("public.UserBankAccounts", t => t.PayeeBankAccountId, cascadeDelete: true)
.ForeignKey("public.UserBankAccounts", t => t.PayerBankAccountId, cascadeDelete: true)
.Index(t => t.PayerBankAccountId)
.Index(t => t.PayeeBankAccountId);
正如您在上面自动生成的迁移中看到的那样,"public.UserBankAccounts" 是一个外键,被生成了两次同名。
因此当我Update-Migration 时出现此错误:
constraint "FK_public.UserBankAccountTransactions_public.UserBankAccounts_P" for relation "UserBankAccountTransactions" already existsa
问题
没有办法在 EF6 的同一张表中添加多个引用/外键吗?
【问题讨论】:
标签: c# entity-framework-6 npgsql