Будет ли это надежным для использования в качестве идентификатора для хранения данных (SQL Server)?
Нет. GUID 128-битные, но хэш-коды 32-битные. Поэтому обязательно происходят столкновения. Маловероятно, что вы когда-либо сталкиваетесь с ним, но вам не гарантировано, что вы никогда не встретите его.
То, что вы хотите для надежности, является гарантией того, что вы никогда не столкнетесь с столкновением. Если вы настаиваете на использовании Guid.NewGuid().GetHashCode()
, вам нужно добавить логику для обнаружения коллизий. У GUID есть свои преимущества (и недостатки), но без дополнительной информации я бы предложил использовать автоматически увеличивающийся столбец int
. Тем более, что вы говорите, что хотите числовой столбец, я бы склонялся к использованию IDENTITY
.