7

DateCreatedおよびDateUpdated列のテーブルがあり、Entity Frameworkを使用してデータベースに値を挿入/更新します。Entity Framework DateTime列 - GetDate()値挿入

SQL ServerのGetDate()値を挿入時に取得するには、DateCreated列が必要です。

DateUpdatedカラム値は、常に最新の値に更新する必要があります。挿入と更新の両方で現在の値はGetDate()です。

私はStoreGeneratedPattern="Computed"を設定しました.SQL Serverのテーブルでは、カラムのデフォルト値をGetDate()に設定しました。期待どおりに動作します。

DateUpdated列の場合、エントリが更新されるたびにGetDate()の値が自動的に設定されるような方法が見つかりませんでした。この値は、エントリが挿入されたときにのみ設定されます。

誰かがこれについていくつか光を当てることができますか?

+0

を、あなたは '' StoreGeneratedPattern =「アイデンティティ」を試したことがありますか? –

+1

なぜ、datecreated作業のdbのデフォルトとしてgetdateしないのですか?それを更新しないと上書きしてはいけません... –

+0

私はDMosesに同意します - デフォルト値は行作成時にのみ設定されます。 –

答えて

7

DateUpdatedをデータベースで設定する場合は、トリガーを使用してgetdate()に設定します。私はStoreGeneratedPattern="Computed"DateUpdatedに設定した場合、EFはトリガによって設定された値を取得すると考えています。参考のため

、あなたのトリガは、この(あなたのテーブルの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 
関連する問題