如何使用 entityframework 创建具有多列的唯一约束

how can create Unique Constraint with multi column with entityframework

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

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

在您的 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" 那么它会在每个上创建一个唯一的索引,这不是你想要的