Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does EF Core allow a unique column to contain multiple nulls?

My entity has a property which is allowed to be null. BUT, if it isn't null, then it must be unique. In other words, the column is unique but allows multiple nulls.

I've tried:

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

I remember struggling to get this to work in pre-Core EF.

Is this possible? How do I configure the entity?

like image 560
grokky Avatar asked Jan 03 '17 08:01

grokky


1 Answers

Yes, you can do that with EF Core, as a Unique index by default is created as a filtered index (WHERE ... IS NOT NULL)

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

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

like image 170
ErikEJ Avatar answered Oct 05 '22 02:10

ErikEJ