getdate () не работает с Entity Framework - PullRequest
4 голосов
/ 28 февраля 2012

Итак, в моей базе данных есть столбец с именем Timestamp со значением по умолчанию GetDate().

Всякий раз, когда я использую Entity Framework для вставки записи, Timestamp - это null.

Почему это так?

Ответы [ 3 ]

3 голосов
/ 24 октября 2012

отредактируйте EDM, внесите следующие изменения:

Type="datetime" 
Nullable="false" 
StoreGeneratedPattern ="Computed"

ref:
http://bibby.be/2009/07/entity-framework-sql.html
2 голосов
/ 28 февраля 2012

Попробуйте изменить тип на datetime2. См. статью для получения дополнительной информации. Также попробуйте использовать Calculated storegeneratedpattern

попробуйте изменить на datetime2, а затем обойти, добавив Trigger

  SET NOCOUNT ON;
  UPDATE ASBLAH
  SET YourFieldChangeTime = getdate() 
  WHERE YOURId IN(SELECT AS_ID FROM INSERTED)

Если вам нужно прочитать данные за эту дату, вы можете сделать это после context.SaveChanges ()

context.Refresh(System.Data.Objects.RefreshMode.StoreWins, p);
1 голос
/ 28 февраля 2012

Entity Framework, вероятно, создает оператор вставки, включающий все поля, где Timestamp является значением для *1002*, поскольку вы не предоставили его.

Если для этого столбца разрешено nullтогда это то, что будет вставлено.Если null не разрешено, будет использоваться значение по умолчанию, которое будет принимать значение GetDate().

Нужно ли разрешить null для вашей таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...