实体框架 - 具有主键和复合外键的多对多

时间:2014-11-06 19:37:30

标签: c# entity-framework many-to-many

我有两个实体(Case和Person)在多对多关系中,在关系表上有一个额外的数据字段(CasePerson with PersonType)。

public class Case {  
    public int Id;  

    public List<CasePerson> CasePeople;
}  

public class Person {  
    public int Id;  

    public List<CasePerson> CasePeople;  
}  

public class CasePerson {  
    public int Id;  
    public int CaseId;  
    public int PersonId;  
    public string Type;  

    public Person Person;  
    public Case Case;  
}  

我想在关系表上创建一个复合键,这样一个人与案例的配对是唯一的。我还想在CasePerson表上维护一个单独的主键,以便通过我的Web API控制器进行操作。 EF或Fluent API中是否有一种方法可以在此CasePerson表上定义两个键?

1 个答案:

答案 0 :(得分:0)

我能够通过添加
来实现这一目标 [Index("IX_CasePerson", 1, IsUnique=true)]

到PersonId和

[Index("IX_CasePerson", 2, IsUnique=true)]

到CaseId。这个唯一索引强制列配对是唯一的。