我正在尝试使用实体框架创建一个具有 NULL 值的唯一过滤索引的表(例如,允许 Null 值重复)。
我正在使用 Fluent API 并具有此实体属性:
modelBuilder.Entity<Client>().Property(c => c.Barcode)
.HasMaxLength(20)
.IsRequired()
.HasColumnAnnotation(
IndexAnnotation.AnnotationName,
new IndexAnnotation(new IndexAttribute("IX_ClientBarcode") { IsUnique = true }));
我发现 SQL Server 2008 允许对具有过滤空值的唯一列进行此操作:
CREATE UNIQUE INDEX indexName ON tableName(columns) INCLUDE includeColumns WHERE columnName IS NOT NULL
这甚至可能吗?因为我使用的是 LocalDB。