Метка времени Entity Framework Проблема создания базы данных - PullRequest
9 голосов
/ 06 июля 2010

У меня проблема с EF 4.0, я создал сущность со столбцом "timestamp".После этого я пытаюсь сгенерировать базу данных.

В сценарии SQL столбец выглядит как «двоичный (8)» вместо отметки времени.

Как решить эту проблему?

1 Ответ

12 голосов
/ 06 июля 2010

проблема решена: EF 4 не мог генерировать столбцы меток времени из конструктора edmx.Решение очень простое:

  1. Установить тип в двоичный.
  2. Установить для nullable значение false.
  3. Установить для StoreGeneratedPattern значение Computed.
  4. Установить для параметра ConcurrencyModeИсправлено.
  5. Создайте копию SSDLToSQL10.tt (обычно находится в C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ DBGen).Давайте назовем это MySSDLToSQL10.tt.
  6. Отредактируйте строку (в настоящее время 151), которая говорит:

[<# = Id (prop.Name) #>] <# = prop.ToStoreType () #> <# = WriteIdentity (prop, targetVersion) #> <# = WriteNullable (prop.Nullable) #> <# = (p <entitySet.ElementType.Properties.Count - 1)?",": "" #>

Измените его на:

[<# = Id (prop.Name) #>] <#if (string.Compare (prop.Name, "TimeStamp", true) == 0) {#> timestamp <#} else {#> <# = prop.ToStoreType () #> <#} #> <# = WriteIdentity (prop, targetVersion) #> <# = WriteNullable (prop.Nullable) #> <# = (p <entitySet.ElementType.Properties.Count - 1)?",": "" #>

...