Почему StringLength вызывает ложные ошибки в списке выбора:
[StringLength(2, MinimumLength = 2)]
должно требовать, чтобы значения были строками длины 2. Однако это вызывает ошибки на стороне клиента, даже если все значения удовлетворяют этому ограничению.