EntityFramework - 组合键和外键

EntityFramework - Composite keys and foreign key

我正在做一个项目,我正在使用 Entity Framework 代码优先方法。我的第一个模型,Player,它的 ID 有两个字符串(我没有选择那个,我知道这是一个糟糕的方法):

public class Player()
{

    [Key, Column(Order=0)]
    public string Name { get; set;}

    [Key, Column(Order=1)]
    public string TeamId { get; set;}

    public Stat PlayerStat { get; set;}
}

class 统计数据:

public class Stat()
{

    [Key]
    public int Id { get; set;}

    // This property should set the name id of the player
    public string Name { get; set;}

    // This property should set the teamId of the player
    public string TeamId{ get; set;}

    [Required]
    public Player Player { get; set;}
}

玩家 class 与 class 统计数据具有一对一的关系,其中统计数据 class 对玩家 class 是可选的,但是玩家 class 是数据 class 所必需的。

我的问题是,当我使用 Entity Framework 创建新迁移并更新数据库时,它会为 Stat table.

创建 5 列

class 统计中的属性 Name 和 TeamId 应该只用于设置外键的值,不应在 table 中创建列。有没有办法将 属性 名称映射到生成的列 "Player_Name" 并将 TeamId 映射到 "Player_TeamId"?

您需要在统计中引用您的外键 class:

[ForeignKey("Player")]
public string Name { get; set;}

[ForeignKey("Player")]
public string TeamId { get; set;}