SQL Server Compact Edition - столбец последовательности? - PullRequest
0 голосов
/ 21 августа 2011

У меня есть простое настольное приложение, которое использует SQL Server Compact (3.5 и будет обновлен до 4.0).

В моей основной таблице клиентов, в дополнение к столбцу ID, который являетсяPK и автоматически увеличивается, мне нужно держать столбец Number, который начинается с некоторого числа (20000) и является уникальным.

Опция вычисления следующего числа по существующей старшей строке не является хорошей- если другой клиент добавляет клиента между моим первым выбором и моей вставкой - у меня возникнет проблема.

Как указано в много мест , SqlCE автоматически увеличиваетсястолбец должен быть Identity столбца, и в каждой таблице может быть только один Identity столбец.

Есть ли другие известные вам способы решения этой проблемы?

Кстати: я использую Linqв ADO .net.

Редактировать:

Просто нашел эту ссылку и обнаружил, что я могу использовать даже опцию Identity с linq to Entities Framework: http://erikej.blogspot.com/2010/04/solutions-to-server-generated-keys-and.html

1 Ответ

0 голосов
/ 21 августа 2011

это действие в принципе неверно, но если вы настаиваете на том, что вам нужна транзакция, когда вы выбираете максимальное значение для вашего столбца. Таким образом, вы гарантируете, что другой пользователь не сможет обновить (и изменить максимальное значение), пока это действие не будет выполнено.1002 *

...