我有一個使用實體框架數據庫優先風格開發的項目。我對各種Model文件進行了一些更改,現在每次在我的EDMX文件上執行「從數據庫更新模型」時,這些更改都會被清除。我看到有一個Refresh選項卡,它列出了我的模型文件,但是沒有辦法告訴VS不刷新這些文件。我應該在這裏做什麼?謝謝。如何在執行「從數據庫更新模型」時更新模型文件?
回答
請勿將更改直接寫入.edmx類。這些類是由ef生成的。生成的類定義爲partial,以便您可以在單獨的物理文件中定義自己的部分類以擴展生成的功能。
這裏有一個很好的例子
https://dotnetcodr.com/2015/02/18/extending-class-definitions-with-partial-classes-in-c-net/
它甚至在產生的.cs頂部聲明文件
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
謝謝。該鏈接很有幫助。 –
我覺得你的問題的最佳答案是: 開始學習實體框架Code-First
他可能正在研究一個現有的代碼庫,它不允許這樣做。但我絕對同意這種看法。 – Fran
如果您直接對數據庫進行更改(又名現有數據庫中的Code-First),Code-First不會解決此問題。 –
我希望我能。首先給我一個工作數據庫。當我完成這個項目的工作時,我想我會在Code First做一個有趣的開始。它似乎更加靈活。 –
取決於你改變了什麼。如果您對edmx模型進行了更改,則每次重新生成模型時都會覆蓋它們。
如果您對所生成的poco-class進行了更改, Poco's是作爲部分類生成的。只需創建一個子文件夾,並使用相同的類簽名將您的poco擴展到單獨的文件中。
同樣適用於模型上下文類(yourModelName.Context.cs)。更改也應該在一個單獨的文件中完成。
也許你應該嘗試'Code First from database'。這會生成一個Fluent模型,更容易更改您的特定需求。儘管沒有模型的圖形表示。
就像你說的...它的DatabaseFirst ...所以你的模型文件將從數據庫更新(不是任何其他地方...不是你),你不應該這樣做......因爲每一個變化都將失去當你再次從數據庫更新你的模型! ...如果因爲某些原因(例如添加列或(...))而改變模型,則必須從數據庫中執行此操作,而不是在這裏執行操作!...但如果將其更改爲另一個原因,如添加驗證屬性或..你必須使用部分類!不要直接寫在你的模型文件中。
- 1. 從模型更新數據庫(模型更改時)?
- 2. 從模型更新數據庫行
- 3. Rails更新數據庫,更改模型
- 4. 如何在更新商店時更新模型數據emberjs
- 5. 更新模型更新不及時更改的數據類型
- 6. 從數據庫更新模型時,如何更新DomainService而無需重新創建新的DomainService文件?
- 7. 更新從數據庫模型沒有更新
- 8. 從數據庫更新時保留對模型的更改?
- 9. 更新數據模型
- 10. Rails - 更新數據庫中的模型
- 11. 根據新的數據庫更改更新模型
- 12. 當模型包含明文數據結構時,實時更新模型更改
- 13. 如何從EF5.0模型更新數據庫模式首先更改?
- 14. 更新模型
- 15. MVC模型 - 如何更新數據庫中的一行?
- 16. 從視圖模型更新模型
- 17. ASP.NET MVC:從模型內更新模型?
- 18. 如何從數據庫更新骨幹模型
- 19. 如何從MySQL數據庫更新實體框架模型?
- 20. 如何從數據庫更新PetaPoco模型?
- 21. 如何從模型,Visual Studio 2012和EF5更新數據庫
- 22. 實體框架:修改模型時如何更新數據庫
- 23. 如何在更新子視圖模型時更新父視圖模型
- 24. 當模型更新時JTable不更新
- 25. 更新模型時,是自我更新
- 26. 從數據庫更新模型 - 刷新一個表
- 27. 實體框架 - 從數據庫更新模型 - 新列
- 28. Django模型更新後端數據庫更新
- 29. 更新模型後更新數據庫無法正常工作
- 30. 如何更新polymorhic模型
請勿將更改直接寫入.edmx類。這些類是由ef生成的。生成的類定義爲部分,以便您可以在單獨的物理文件中定義自己的部分類以擴展生成的功能 – Fran