1
我有两个实体(个案和人)与关系表上的额外数据字段(CasePerson与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表上定义两个键的方法?
[创建复合关键实体框架]的可能重复(http://stackoverflow.com/questions/14873169/creating-composite-key-entity-framework) – 2014-11-06 19:53:35
我没有试图将复合关键字作为外部关系的关键;相反,我试图保证组合{CaseId,PersonId}对每个CasePerson都是唯一的。我知道我可以将它作为复合主键,但我不想从CasePerson中删除已存在的主键ID。 – user3897692 2014-11-06 20:36:17
我可以通过向CaseId添加'[Index(“IX_CasePerson”,1,IsUnique = true)]'来实现此目的。这个独特的索引强制列配对是唯一的。 – user3897692 2014-11-07 20:29:24