2015-12-21 52 views
1

我正在使用實體框架6,我的情況很簡單,我需要在__MigrationHistory表中添加一個應該有日期時間的新列(如時間戳)創建日期。如何在實體框架中添加新列(並填充它)__MigrationHistory

我讀了一些例子,它說如何重命名MigrationHistory甚至重新命名的主鍵列 - 這不是我想要的東西,所以請不要給我的例子(https://msdn.microsoft.com/en-us/data/dn456841.aspx

我只需要添加一個createdDate列,並且當您使用update-database -script時,新列應該等於dateTime.now()

有誰知道如何做到這一點?

謝謝!

回答

0

MigrationId列已經作爲遷移創建的日期戳。

MigrationId 
201407221811141_InitTables 

如果你正試圖獲得在遷移是應用你應該能夠創建一個運行SQL腳本,以使用默認值添加一列遷移日期:

僞代碼:

Migration { 
    Up() { 
     SQL('Alter table __MigrationHistory add createdDate datetime') 
     SQL('Alter table __MigrationHistory ADD CONSTRAINT CONSTRAINT_NAME DEFAULT GETDATE() FOR createdDate') 
    } 
} 
+0

我需要在數據庫上執行遷移的日期,而不是創建到項目的遷移日期。你的第二個解決方案,不確定是否會起作用,因爲你正在添加一個新列,並且會導致一個模式更改異常,所以有一些步驟可以添加一個新列以實現此目的。儘管如此,一個約束或觸發器可能是一個解決方案,但我試圖避免這種情況。謝謝您的幫助! – Yogurtu

+0

我沒有試過這個。你試過了嗎?由於'__MigrationHistory'不是模式/模型的一部分,我不認爲這是一個問題。如果你找到解決方案,一定要發佈你做的,我很想知道 – Eonasdan