2010-06-17 3 views
0

Я пытаюсь использовать EF4 и предположительно новую функцию создания GUID-серверов на стороне сервера. У меня есть таблица с основным ключом GUID, и ее значение по умолчанию установлено в NewID() в SQL Server. Однако я попытался настроить StoreGeneratedPattern на Identity и Computer и не работает. Я нашел эту ссылку в MSDN с противоречивой информацией. Некоторые говорят, что это должно сработать, а некоторые нет.Entity Framework 4 Первичный ключ как GUID и автогенерация

http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/72f0045d-1619-4044-bf50-c6eb5091995e

Может кто-нибудь подтвердить, если это должно или не должно работать?

ответ

0

Он работает в 4.0, если вы установили StoreGeneratedPattern. Это не работает в 3.5. Комментарий «неэффективная индексация» справедлив только в том случае, если у вас есть кластерный индекс в GUID PK. Это неверно, если ваш кластерный индекс находится в другом месте.

+0

Итак, вы должны установить StoreGeneratedPattern для вычисления или идентификации? По-прежнему не повезло, отлично работает в полях Identity Int и BigInt, но рисует пробел в любых полях UniqueIdentifier. – AKoran

+0

Идентичность. Вы изменили SSDL? См. Это сообщение: http://leedumond.com/blog/using-a-guid-as-antitykey-in-entity-framework-4/ –

+0

Да, я вижу, так что на самом деле это не работает только дизайнер. Другим недостатком является то, что вы всегда должны помнить о том, чтобы вернуть StoreGeneratedPattern после обновления модели из БД. Не самое прекрасное решение! Однако ни одна из них не является вашей ошибкой. Спасибо, что указали мне в правильном направлении. – AKoran