我的理解是,約定是在DBContext方法中重寫的OnModelCreating方法中使用Entity Framework Fluent API;並且這隻在數據庫創建期間運行。EF Fluent API可以在數據庫創建後
這會讓我相信,如果您每次發生更改時都要刪除並創建數據庫,則Fluent API只能多次使用(例如在開發數據庫時)。
我的問題是:有沒有辦法利用Fluent API進行數據庫配置,僅用於數據庫更新,例如運行數據庫遷移命令「update-database」時?
我的理解是,約定是在DBContext方法中重寫的OnModelCreating方法中使用Entity Framework Fluent API;並且這隻在數據庫創建期間運行。EF Fluent API可以在數據庫創建後
這會讓我相信,如果您每次發生更改時都要刪除並創建數據庫,則Fluent API只能多次使用(例如在開發數據庫時)。
我的問題是:有沒有辦法利用Fluent API進行數據庫配置,僅用於數據庫更新,例如運行數據庫遷移命令「update-database」時?
從DbContext.OnModelCreating documentation:
典型地,該方法被稱爲僅在創建派生上下文的第一個實例一次。然後,該上下文的模型將被緩存,並用於應用程序域中上下文的所有更多實例。
因此,在創建模型時調用它,而不僅僅是在創建數據庫時調用它。如果在添加遷移後或在發佈新版本後啓動網站時致電Update-Database
,則會發生這種情況。
參考文獻:
https://stackoverflow.com/a/6181867/150342
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
謝謝...我想我只是想確定最好的辦法就是要能夠發展自己的數據庫,我開發的MVC應用程序,添加模型等。看起來好像有兩個根,指向初始化程序在Chages之後的Drop和Recreates,或通過Data Migrations/Package Manager Console顯式應用更改。前者似乎對我更直接。偏好反饋意見。 – 2015-01-22 01:02:06
從上面的優雅代碼鏈接。提示號碼1 - 「不要使用自動遷移自動遷移對於演示和概念的快速驗證很有趣,但在生產應用程序中沒有位置」 – Colin 2015-01-22 09:53:15