gpt4 book ai didi

c# - 来自同一类型的两个对象的组合键

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:44 27 4
gpt4 key购买 nike

我有一个简单的 Employee

class Employee
{
public string Id { get; set; }
...
}

和另一个类 Transaction其中包含两名员工:

class Transaction
{
public virtual Employee Registrant { get; set; }
public virtual Employee Recipient { get; set; }
}

为什么我不能制作 Transaction有一个复合键,由两个员工的 ID 组成。我这样做:

modelBuilder.Entity<Transaction>().HasKey(t => new { t.Registrant.Id, t.Recipient.Id });

Visual Studio 会告诉我:

Duplicate anonymous type property name 'Id'

最佳答案

当您编写新的 { t.Registrant.Id, t.Recipient.Id } 时,编译器会尝试生成具有字段 Id 和 Id 的匿名类型,因为他使用属性 Registrant.Id 和 Recipient.Id 的名称。类型不能包含多个具有相同名称的属性,编译器会生成错误。为避免这种情况,您应该指示编译器使用其他名称:

modelBuilder.Entity<Transaction>().HasKey(t => new { RegistrantiId = t.Registrant.Id, RecipientId = t.Recipient.Id });

关于c# - 来自同一类型的两个对象的组合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687373/

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