Я бы сказал, что .NET не поддерживает уникальный идентификатор или guid в качестве идентификатора, но эта конкретная реализация (поставщик членства ASP.NET SQL Server) делает. Я подозреваю, что те, кто разрабатывал базу данных, работали с предположением, что использование базы данных не должно быть для сайтов с высоким трафиком, или там, где, вероятно, будут составлены большие отчеты.
Возможно, они пытались избежать каких-либо проблем с интеграцией в существующее приложение или в будущем сценарии, когда у вашего приложения был ключ для пользователя. Это может быть ключ любого типа для любого объекта (PK, UserNumber и т. Д.). В реализации ASP.NET SQL Server вероятность столкновения очень мала / приближается к нулю.
Единственный недостаток, который я обнаружил, заключается в том, что наличие кластерного индекса в guid не масштабируется до больших баз данных.
Я в основном в лагере целых чисел. Они маленькие, используют несколько байтов и отлично работают, когда требуется масштабировать базу данных.