В чем разница между
new Guid("00000000-0000-0000-0000-000000000000")
new Guid("10000000-0000-0000-0000-000000000000")
и Guid.Empty?
Нравится
1 и 2 - разные значения Guid.
Guid.Empty - это статичная константа, в которой лежит Guid = "00000000-0000-0000-0000-000000000000".
Нулевым Guid символизируется отсутствие значения, так как в C# тип Guid - это структура, следовательно не может принимать null.
При считывании из БД справочного значения null в переменную будет присваиваться "00000000-0000-0000-0000-000000000000". Для БД нулевой Guid является валидным значением, и если попробуете присвоить его в справочное поле, то БД выдаст ошибку ограничения внешнего ключа (в ссылаемой таблице нет значения с Id состоящим из нулей). Как раз для этих случаев переменные сравнивают с константой Guid.Empty, чтобы случайно не установить такое значение и не поломать процесс ошибкой.
1 и 2 - разные значения Guid.
Guid.Empty - это статичная константа, в которой лежит Guid = "00000000-0000-0000-0000-000000000000".
Нулевым Guid символизируется отсутствие значения, так как в C# тип Guid - это структура, следовательно не может принимать null.
При считывании из БД справочного значения null в переменную будет присваиваться "00000000-0000-0000-0000-000000000000". Для БД нулевой Guid является валидным значением, и если попробуете присвоить его в справочное поле, то БД выдаст ошибку ограничения внешнего ключа (в ссылаемой таблице нет значения с Id состоящим из нулей). Как раз для этих случаев переменные сравнивают с константой Guid.Empty, чтобы случайно не установить такое значение и не поломать процесс ошибкой.
Egor Vladimirsky,
Добрый день Егор, подскажите какая у вас проблема?