如何使用entityframework创建具有多列的Unique Constraint

时间:2015-06-30 05:58:23

标签: entity-framework ef-fluent-api

我使用Entityframework Code First和使用Fluent API的EntityTypeConfiguration。 如何使用多列创建唯一约束。 例如,我有一个下面的字段

的表
  • 编号
  • CompanyId
  • 名称

我希望根据CompanyId将代码列设置为唯一

1 个答案:

答案 0 :(得分:3)

在您的EntityTypeConfiguration中,您可以执行以下操作:

Property(m => m.CompanyId)
    .HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("IX_YourUniqueIndexName", 1) { IsUnique = true }));
Property(m => m.Code)
    .HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("IX_YourUniqueIndexName", 2) { IsUnique = true }));

这将在这两列上创建一个唯一索引。

确保为唯一索引使用相同的名称。两者都需要是名字" IX_YourUniqueIndex"。如果一个人被称为" IX_Index1"和另一个" IX_Index2"然后它会在每个上创建一个唯一的索引,这不是你想要的