实体框架核心使用Fluent API向影子外键添加唯一索引

时间:2020-02-25 01:24:09

标签: entity-framework entity-framework-core

我将EF Core 2.2与代码优先方法结合使用。我使用“ add-migration”生成数据库模型。我想知道如何向E​​F Core中的多个列添加唯一索引/约束。以下示例说明了我的观点(不是实际问题)。

我想使用Fluent API通过影子外键和表中的另一列的组合添加唯一约束。

要求:一个团队不能有2个具有相同球衣号码的不同球员。但是,两个不同球队中的两个不同球员可以具有相同的球衣号码。

ManPlot = function(x){
  ggplot(x,aes(x=Treatment,y=value))+
    geom_point()+
    labs(tag = "x")+
    theme(plot.tag.position = c(0.75,0.5))
}
    Team A Player 1 Jersey #5  // ok
    Team A Player 2 Jersey #10 // ok
    Team A Player 3 Jersey #10 // not allow
    Team B Player 1 Jersey #5  // ok

EF核心会在后台自动生成外键ParentId。我可以在子表中看到FK ParentId,但是无法在dbContext中访问它来向其添加唯一约束。

这是我向数据库上下文内的球衣号码列添加唯一约束的方式。

public class Team
{
  public int Id {get; set;} //PK
  public string TeamName{get; set;}
  public List<string> Players {get; set;}  // this will generate a FK in the Player table by EF Core
}

public class Player
{
  public int Id {get; set;}
  public string Player{get; set;}
  public string JerseyNumber{gt; set;}  // must be unique for the same team
}

0 个答案:

没有答案