繁体   English   中英

EntityFramework-复合键和外键

[英]EntityFramework - Composite keys and foreign key

我在一个项目上工作,我在使用实体框架和代码优先方法。 我的第一个模型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;}
}

Stat类:

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;}
}

玩家类与类stat具有一对一的关系,其中Stat类对于玩家类是可选的,但是stat类需要玩家类。

我的问题是,当我使用Entity Framework创建新迁移并更新数据库时,它将为Stat表创建5列。

  • ID
  • 名称
  • TeamId
  • 选手姓名
  • Player_TeamId

类stat中的Name和TeamId属性只能用于设置外键的值,而不能在表中创建列。 有没有一种方法可以将属性Name映射到生成的列“ Player_Name”,将TeamId映射到“ Player_TeamId”?

您需要在Stat类中引用外键:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM