Использование базы данных, сгенерированной GUID и datetime с EF4 - PullRequest
10 голосов
/ 26 февраля 2011

У меня есть простая таблица с идентификатором (uniqueidentifier), datetime и значением.

Я хотел бы использовать getdate() в базе данных для времени вставки записии newid() для идентификатора.Как я настраиваю структуру объекта, чтобы сделать это?Когда я пытаюсь назначить идентификатор на БД, я получаю:

Violation of PRIMARY KEY constraint 'PK_Random'. Cannot insert duplicate key in object 'dbo.Random'. The duplicate key value is (00000000-0000-0000-0000-000000000000).

Ответы [ 2 ]

22 голосов
/ 05 августа 2012

, если вы используете код первым. Пожалуйста, добавьте следующее в ваш гид.

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid guId { get; set; }

Это позволит генерировать guid на стороне сервера sql. Надеюсь, это поможет.

7 голосов
/ 22 июля 2013

Просто добавлю к этому, так как ответ @lunateck помог мне.Другой способ (если вы сначала используете базу данных):

  1. Откройте файл edmx.
  2. Щелкните правой кнопкой мыши -> Браузер модели
  3. Щелкните правой кнопкой мышистолбец Guid -> Свойства -> изменить StoreGeneratedPattern на Identity.
...