我正在开发一个项目,我正在使用Entity Framework和代码第一种方法。我的第一个模型,玩家,有两个字符串作为其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;}
}
班级统计:
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列。
类stat中的属性Name和TeamId应仅用于设置外键的值,并且不应在表中创建列。有没有办法将属性Name映射到生成的列“Player_Name”,将TeamId映射到“Player_TeamId”?
答案 0 :(得分:0)
您需要在Stat类中引用您的外键:
[ForeignKey("Player")]
public string Name { get; set;}
[ForeignKey("Player")]
public string TeamId { get; set;}