Column '' in table '' is of a type that is invalid for use as a key column in an index
I decided to change my blogging style a little bit. Instead of writing lengthy blog posts in a more systematic way I want to write things about all the different kinds of issue I got when building stuff and learning new things. I am very experienced in some areas but new on many more areas so the issues I got might be very basic and simple. I think that it is useful to just record it for myself and also for other people since they might get into the same situation.
I just started using entity framework 6.1.1 and tried to define an index on a column called ZipCode as below but I got the below error when doing 'Update-Database' by using code first migrations.
public string ZipCode { get; set; }
Column 'ZipCode' in table 'dbo.ServiceProviders' is of a type that is invalid for use as a key column in an index.
It turned out that it is a simple issue. The max length for an index column is 900 bytes. The fix is as simple as below.
[MaxLength(20)]
public string ZipCode { get; set; }
Comments
Anonymous
August 18, 2014
Thanks, this saved me from a big problemAnonymous
December 09, 2014
Thanks ... saved me time :)Anonymous
January 13, 2015
Thank. You. I was chasing this down as a Data Type issue, rather than just a field length issue. Saved me a lot of time.Anonymous
March 12, 2015
Thank you for the blog. Saved me heaps of time.Anonymous
July 23, 2015
Was exactly that the problem. You nail it ThxAnonymous
October 19, 2015
Was at the top of my Bing search, where it belongs. Thanks.Anonymous
November 18, 2015
Can this be corrected from the edmx (design first), or is source code the only way (code first)?Anonymous
November 18, 2015
I didn't try design first approach since I prefer code first but I think that there should be an equivalent way.Anonymous
January 22, 2016
Kudos!! Solved my problem. Thanks. Clearly a bad message on the part of Entity Framework ...