是否可以使用 Fluent API 在实体框架核心中创建不区分大小写的唯一索引?
例如,可以使用以下 SQL 在 Oracle 中定义不区分大小写的唯一索引:
create unique index test on "Person"(lower("Name"));
但是,据我所知,EF Core 中的唯一选项是区分大小写的唯一约束,例如:
builder.HasIndex(e => e.Name)
.IsUnique();
我已经尝试了以下方法,但它不起作用:
builder.HasIndex(e => e.Name.ToLower())
.IsUnique();
从 EF Core 5.0 开始,可以使用排序规则。
builder.Property(e => e.name).UseCollation("SQL_Latin1_General_CP1_CI_AS");
builder.HasIndex(e => e.name).IsUnique();
对于 oracle,您可能需要尝试其他排序规则名称,例如BINARY_CI
。