当在字段前添加唯一约束时,会报如下错:
EntityFramework: Column ‘COLUMN_NAME’ in table ‘dbo.TABLE_NAME’ is of a type that is invalid for use as a key column in an index
[Index(IsUnique=true)]
public string MacAddress { get; set; }
Error Message:
Column 'MacAddress' in table 'dbo.AspNetUsers' is of a type that is invalid for use as a key column in an index.
Reason of the problem
This error is because the unique constraint can’t be over 8000 bytes per row and will only use the first 900 bytes even then so the safest maximum size for my field would be 450 characters.
Solution to the problem
To add this limitation in code first model just add the [MaxLength(450)] attribute to your property as shown in the code below.
[Index(IsUnique=true)]
[MaxLength(450)]
public string MacAddress { get; set; }