我在EF Code FIrst中寻找一种方法来获得一个唯一的索引,它允许多个NULL
值。
Here我找到了一种可能的解决方案,创建了一个过滤索引,该索引将排除空值并仅验证不 NULL
值的唯一性。
我需要执行的SQL是
CREATE UNIQUE INDEX indunique
ON testunique(value)
WHERE value IS NOT NULL
其中testUnique
是表格,indunique
索引名称和value
我想要唯一的列,允许NULL
值。
因此,实现此目的的方法是在自定义DatabaseInitializer的覆盖Database.ExecuteSqlCommand()
方法中调用Seed()
并传递上述命令。
但有没有办法通过Fluent-API或数据注释实现此索引?
要使用
实现唯一约束modelBuilder.Entity<Transmitter>.HasIndex(t => t.MeasureCellId).IsUnique(True)
但我该如何实施过滤器?