Столбец DateTime в Entity Framework - вставка значения GetDate () - PullRequest
7 голосов
/ 09 декабря 2011

У меня есть таблица со столбцами DateCreated и DateUpdated, и я использую Entity Framework для вставки / обновления значений в базе данных.

Мне нужен столбец DateCreated, чтобы получить значение GetDate() SQL Server только при вставке.

DateUpdated значение столбца всегда должно обновляться с текущим значением GetDate() при вставке и обновлять оба.

Для столбца DateCreated я установил StoreGeneratedPattern="Computed", а в таблице SQL Server для столбца по умолчанию установлено значение GetDate (), которое работает хорошо, как ожидалось.

Для столбца DateUpdated я не смог найти способ автоматически установить значение GetDate() при каждом обновлении записи. Это значение get устанавливается только при вставке записи.

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

1 Ответ

7 голосов
/ 11 декабря 2011

Если вы хотите, чтобы DateUpdated устанавливалось базой данных, вы можете использовать триггер, чтобы установить значение getdate().Я полагаю, что EF также получит значение, установленное триггером, если вы установите StoreGeneratedPattern="Computed" для DateUpdated.

Для справки, ваш триггер будет выглядеть примерно так (вам придется обновлять по PK вашей таблицы):

create trigger MyTable_UpdatedTrigger
on MyTable
for update
as
begin
    update t set DateUpdated = getdate()
    from MyTable t
        join inserted i on t.Id = i.Id
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...