Почему столбец [Timestamp] в ядре EF поддерживается столбцом byte [] вместо UInt64 - PullRequest
0 голосов
/ 05 июля 2018

При использовании столбца отметки времени в Entity Framework он поддерживается типом столбца rowversion в SQL Server и представляется как CLR byte[] (согласно документам ). Длина столбца 8 байтов.

Почему они решили использовать byte[] вместо UInt64? Это будет держать значение просто отлично. Есть ли какие-то неочевидные преимущества использования byte [] или это просто для использования EF с другими механизмами БД, которые могли бы реализовать столбец, похожий на строку, как внутренний тип данных.

1 Ответ

0 голосов
/ 05 июля 2018

Назначение поля rowversion / timestamp заключается в том, что при каждом обновлении это новое уникальное значение. Тот факт, что для некоторых реализаций это «временная метка», не имеет значения.

Согласно этой странице , для MS-SQL это инкрементное число, согласно этой странице , для MySql это временная метка.

Поэтому массив 'байтов' обеспечивает наибольшую совместимость.

...