我正在考慮在實體框架中使用Code First方法。是否有觸發器的替代方案?
我喜歡在DateAdded和DateModified等字段中添加觸發器到我的SQL數據庫,以便它們根據需要自動更新getdate()
。
從我聽到的這個對EF來說很困難:Code First,那麼還有其他的選擇嗎?
我正在考慮在實體框架中使用Code First方法。是否有觸發器的替代方案?
我喜歡在DateAdded和DateModified等字段中添加觸發器到我的SQL數據庫,以便它們根據需要自動更新getdate()
。
從我聽到的這個對EF來說很困難:Code First,那麼還有其他的選擇嗎?
它並不一定是困難的(如getdate() default
),你只需要知道在哪裏注入......
您可以包括自定義的SQL進入「鏈」 - 通過使用
Seed
- ing 或定製Initializer
- 做任何類型的定製工作。
如果您想在'創建後'中執行此操作,您可能會遇到遷移問題 - 但是如果您在Db仍然爲空時限制所有類似的初始工作,則應該可以。
另一個令人擔心的問題是各種Db提供程序 - 因爲任何自定義SQL可能會有所不同或支持 - 但是如果您知道自己的目標是什麼,那麼應該沒問題。
檢查此鏈接 - Possible to default DateTime field to GETDATE() with Entity Framework Migrations?
或者這一個普遍看好觸發器https://stackoverflow.com/a/5913581/417747
...這可能是接近你所需要的 - 並且讓你瞭解如何做一些其他的想法的東西。
這不好玩。您需要覆蓋您的POCO的OnModelCreating並將屬性設置爲getdate –
@DaveA否,您可以設置'DatabaseGenerated.Computed',但我認爲OP指的是通過遷移創建觸發器,您是Rowan嗎? –
@GertArnold,我正在考慮在'OnModelCreating'方法中使用'DatabaseGenerated.Computed'。我認爲這是觸發器的替代品。瞭解觸發器在代碼優先的問題 –