Почему делает Гуид. ToString () инвертируют порядок байтов?

Просто проверьте упаковку, самый простой ответ, который я могу предоставить, заключается в том, что ваш пакет был помечен (внутри класса).

Кроме того, у вас могут быть какие-то странные символы. Попробуйте выполнить очистку кода в блоке Notepad (или Gedit), а затем вставьте его в новый класс с вашей IDE.

8
задан Nizam 19 December 2013 в 18:45
поделиться

1 ответ

Поля Uniqueidentifier в SQL-сервере могут быть индексированы и 'назад' - также.

Гуиды могут быть сгенерированы и от машины определенная информация и от 'разовой событием' информации.

Гуид по умолчанию в .NET случаен, но можно получить последовательные Гуиды от него с вызовом экстерна:

[DllImport( "rpcrt4.dll", SetLastError = true )]
static extern int UuidCreateSequential( out Guid guid );

Это получит Вас Гуиды на основе Вашего MAC-адреса (документы MSDN), которые последовательны.

Если Вы .ToString() эти последовательные гуиды затем, Вы будете видеть первую часть строки, варьируются, в то время как остальное остается постоянным.

Это осуществляет проверки равенства между более быстрыми Гуидами (как различия будут в запуске), и улучшает изменение для усеченных.

Для поиска столбцов SqlServer создает индексы похожим способом к телефонному справочнику или словарю. Это намного более быстро для поиска слов, запускающихся с "По*", чем это должно было бы найти, заканчивающиеся в "*flow".

Это означает, что для SQL-сервера любые последовательные Гуиды должны быть снабжены повторяющимся значением сначала, таким образом, это хранит их наоборот.

8
ответ дан 5 December 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: