Ваш критерий выглядит хорошо, но ваш запрос на получение регистронезависимого получения по умолчанию не имеет особого смысла.Что бы он сделал из нескольких строк в базе данных, имеющих PK, отличающиеся только регистром?
Я бы просто позаботился о том, чтобы ваши ключевые свойства всегда были в нижнем регистре, либо путем исключения, если передаются значения в верхнем регистрев конструктор B или путем автоматического преобразования их в нижний регистр.
Вы можете сделать то же самое, используя проверенные ограничения в базе данных, в случае, если какое-то другое приложение вставит данные в базу данных.