7

情況:有時候數據庫模式是不是你會考慮的系統的信息的理想表現,你可能無法改變它。我們一直在使用實體框架來創建一個更好的概念模型來在這種情況下進行編碼。這意味着從數據庫更新模型,然後通過設計器或直接使用文本編輯器通過.edmx文件自行更改模型。燦實體框架4.1的設計師「從數據庫更新模式」唯一入選的實體?

問題:當您從數據庫更新模型時,您所做的所有仔細更改都將被拋出窗口。這可能會使添加新實體變得非常麻煩,因爲您基本上被迫通過直接編輯.edmx文件來完成它。

問題:有沒有辦法讓實體框架只從數據庫中更新選定的實體?或者是否可以告訴它在添加新實體時單獨留下模型的其餘部分?

謝謝!

回答

4

沒有就沒有辦法讓內置的設計師選擇更新。此外,設計師不會拋棄所有的更改。它通常不碰概念模型(除了一些少數情況下,它不斷地重命名一些關聯)和映射,但它始終刪除存儲模型,並用新的定義覆蓋它。我沒有任何問題修改我的概念模型,並從數據庫映射和運行更新。

設計器與Visual Studio中的其他設計器一樣 - 觸摸生成的代碼(存儲模型)不受支持的功能。一旦你這樣做,你不能使用更新數據庫從再

commercial tool這可能支持更好的型號更新 - 您可以嘗試試用。

1

如果通過更新選定的實體,您的意思只是一個或多個表,你可以從模型中刪除的表,然後通過單獨選擇它們來進行添加早在單獨的變化表拉 - 我這樣做,經常爲標的表格被改變(特別是在開發過程中)。

在實體/表被拉入模型後,您最終會失去對這些重新添加的實體所做的任何手動更改(即,我經常重命名我的導航屬性,然後在每次重新導入表後需要再次手動重命名它們)。