Recently I had a demand to use an unsigned integer type in Entity Framework model. Everything was OK, but migration did not create a field for that type.
I knew that EF could not create a SQL type for char (System.Char), even if you place an annotation like this:
[Column(TypeName = "char")]
I wrote about it in my post Entity Framework. C# To SQL Type Translation.
It was surprise for me that EF could not create any type for unsigned types like ushort, uint or ulong. Column annotation to use signed type ain’t help too.
And the most “amazing” thing is that EF rejects sbyte type (as for the EF version 6.1.3). It generates an error:
There is no store type corresponding to the conceptual side type 'SByte' of primitive type 'SByte'.
The conclusion is that you can use any .NET type in Entity Framework model except char, ushort/uint/ulong and sbyte.