Для моего первичного ключа и идентификатора в нашей таблице клиентов я использую столбец uniqueidentifier
со значением по умолчанию, установленным в newsequentialid(). Вставка новых строк через инструмент управления создает значения для тонкости идентификатора.Использование уникального типа столбца SQL с инфраструктурой Entity
Вставка из .NET 4 кода через результаты EF в нулевые идентификаторы GUID (00000-0000 ....). Я создаю объект с новым, устанавливаю некоторые значения и выполняю EF AddToClients
(например). Если отлаживается, значение для свойства id показывает нулевой идентификатор GUID. Я не устанавливаю явно id через Guid.NewGuid()
в свой код, потому что я хочу оставить его на newsequentialid()
в SQL Server. Проблема в том, что она не работает. При первом запуске кода строка вставлена с нулевым идентификатором GUID. В следующий раз, когда он явно терпит неудачу и приведет к исключению нарушения первичного ключа.
Как я могу заставить это работать без необходимости указывать GUID в моем клиентском коде?
ли это. Без изменений. У объекта все еще есть ZERO GUID, установленный перед вставкой и вставкой с дублирующимся ключом (я оставил ранее вставленный в таблице). – mare
Ох я вижу о проблемах дизайнера ... это просто здорово..Наверх другой вопрос, о котором я писал в другом вопросе, теперь это. Спасибо за ответ, хотя. – mare
@mare: Я чувствую вашу боль.EF - мощный инструмент, но когда вы сталкиваетесь с чем-то, что он не обрабатывает * хорошо *, это может быть огромная головная боль, чтобы обойти его. –