Незначительное, но раздражающее раздражение. Почему ASP.Net устанавливает строчные буквы в SQL Server Guids? - PullRequest
3 голосов
/ 04 октября 2011

Я делаю кое-что на стороне клиента с Javascript / JQuery с элементами управления .Net, которые предоставляют свои идентификаторы GUID / UniqueIdentifier на внешнем интерфейсе, чтобы позволить им манипулировать.Во время отладки что-то сводит меня с ума: GUID в БД хранятся в верхнем регистре, однако к моменту, когда они попадают в начало, они в нижнем регистре.

Это означает, что я не могу быстро скопировать ивставьте идентификаторы в консоль браузера для запуска JS на лету при разработке / отладке.Я нашел практически работоспособный способ сделать это, но мне было интересно, знает ли кто-нибудь, почему так происходит, и есть ли способ заставить GUID оставаться заглавными.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

В соответствии с MSDN docs метод Guid.ToString () будет генерировать строчную строку.

Что касается того, почему он это делает - очевидно, RFC 4122 утверждает, что долженбыть таким.

Шестнадцатеричные значения от "a" до "f" выводятся как символы нижнего регистра и нечувствительны к регистру при вводе.

Также проверьте этот вопрос наSO - net-guid-uppercase-string-format .

Так что лучшее, что вы можете сделать, это вызвать ToUpper () для ваших строк GUID и добавить метод расширения, как показано вдругой ответ.

2 голосов
/ 04 октября 2011

Если вы используете шаблон Eval, тогда я посмотрю, сможете ли вы сделать это с помощью метода Extension.

что-то вроде

public static string ToUpperString(this Guid guid, string format = "")
{
    string output = guid.ToString(format);

    return output.ToUpper();
}

А затем в вашем блоке Eval,

myGuid.ToUpperString("B")

Или как вам нужно, чтобы посмотреть.

В данный момент я нахожусь на своем Mac, поэтому я не могу это проверить, но он должен работать, если у вас правильная версия .Net.

...