When working with some Linq today, I kept getting the following error:
String must be exactly one character long.
This one had me scratching my head for a while. Turns out the problem was in the Linq to SQL designer, and the way the code generator interpreted results from the view I was using.
The problem stems from the designer translating a varchar(1) to a system.char(1), a fixed length variable, instead of a system.string, which can have a variable length. If the value is blank or NULL (allowable in the database), the fixed length condition isn’t met and an error is thrown.
To remedy this, go back to the designer, pin the Properties sidebar open, and look at the elements which have been mapped. Any one which is mapped to Char(1) should be changed to a String. This should fix your problem.
Below, the image on the left shows the improper mapping, and the image on the right shows the fixed mapping.