c# - EF Core 是否允许唯一列包含多个空值?

标签 c# entity-framework ef-code-first entity-framework-core

我的实体有一个允许为空的属性。但是,如果它不为空,那么它必须是唯一的。换句话说,该列是唯一的,但允许多个空值。

我试过了:

config.Property(p => p.ProductId).IsRequired(false);

我记得努力让它在 pre-Core EF 中工作。

这可能吗?如何配置实体?

最佳答案

是的,您可以使用 EF Core 做到这一点,因为默认情况下唯一索引是作为过滤索引创建的(WHERE ... IS NOT NULL)

config.Entity<Product>()
        .HasIndex(b => b.ProductId)
        .IsUnique();

https://github.com/aspnet/EntityFramework/pull/2868

关于c# - EF Core 是否允许唯一列包含多个空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439434/

相关文章:

c# - 需要解雇员工的能力

c# - 在 ToString() 方法中使用 lock() 进行集合

.net - 向mysql数据库插入浮点值不一致

c# - 使用 Entity Framework 代码优先创建表、运行时

entity-framework - 实体不公开外键属性的 DbUpdateException

c# - 首先附加现有数据库 Entity Framework 代码时出错

c# - 在 EF 4.1 预加载中,如何加载多个(同一级别)孙子关系?

c# - 如何测试需要协调 UserControls 的创建和托管的 ViewModel?

c# - 左移 255(作为一个字节)

c# - 从 C# 中的 Entity Framework 生成的类派生