1

使用ASP.NET 4和Entity框架4.3.1通過ObjectContext。使用設計器從數據庫更新模型時,保留實體類屬性的任何方法

無論何時我從數據庫更新/刷新模型,任何屬性屬性集即[AllowHtml]在一個或多個實體類中的屬性將消失,因爲該過程完全重建了它看起來像的實體模型的所有類。

另外,當試圖通過設計器添加簡單的標量屬性時,表映射不會自動創建,而且我也無法創建它們,這讓我唯一的選擇是首先將此屬性添加到基礎數據庫,然後運行更新/刷新模型嚮導。是否可以添加表映射?如果不是,爲什麼這個功能甚至包含在設計師中。

回答

1

自動生成代碼的第一條規則:您不得修改它,因爲每次設計器再次運行自動生成時,修改都會丟失 - 自動生成無法檢測到您的更改。它負責爲當前模型生成正確的代碼,因此它將始終從頭創建所有代碼並刪除舊代碼。

表映射不會自動創建。 Designer支持兩種建模方法。

  • 數據庫第一 - 您修改數據庫,並從數據庫中運行更新模型,得到設計師的修改和相關映射
  • 型號第一 - 修改了模型,並運行生成模型數據庫得到一個SQL腳本創建您的數據庫

您應該只使用一種方法。

如果要標記具有屬性的實體,則不得使用自動生成的代碼。您必須手動創建和維護您的課程。在驗證的情況下(使用數據註釋),您可以使用buddy classes來代替,但它可能不是您的情況。

相關問題