更新模型精靈對 EDM 所做的變更
[更新模型精靈] 可讓您在已經變更基礎資料庫時更新 Entity Data Model (EDM)。使用 [更新模型精靈] 更新 EDM 時,有兩件重要的事情必須要注意:
[更新模型精靈] 會在根據資料庫的變更來更新 EDM 時覆寫現有儲存體模型,因此您對儲存體模型已做的自訂變更將不會反應到更新的儲存體模型。
[更新模型精靈] 只會對概念模型和對應進行附加的變更,因此在新物件被加入資料庫時,[更新模型精靈] 會將對應的實體、關聯和對應加入至概念模型。然而,如果物件已從資料庫移除,[更新模型精靈] 則不會從概念模型移除對應的實體或關聯 (對應的對應已移除)。
下表提供有關 [更新模型精靈] 在資料庫物件發生變更時修改概念模型之方式的詳細資訊。
資料庫物件 | 資料庫中物件的變更 | 從資料庫更新時對 EDM 所做的變更 |
---|---|---|
資料表/檢視表 |
已加入 |
已將新的 EntityType 和對應的關聯與對應加入至概念模型。 |
已刪除 |
已從儲存體模式移除資料表或檢視表,而且已刪除資料表的所有對應。如果資料表或檢視表有一個或多個為外部索引鍵關聯性存放索引鍵的資料行,則會刪除對應關聯的對應。 |
|
已重新命名 |
對概念模型和對應重新命名資料表或檢視表的效果等同於刪除舊名稱的資料表/檢視表並加入新名稱的資料表/檢視表。 |
|
主索引鍵已變更 |
如果資料行已加入至資料表或檢視表的主索引鍵,則會為參考新的主索引鍵的任何外部索引鍵加入關聯。此外,會將對應的新關聯加入至概念模型,但是將不再對應先前存在的關聯。 如果資料行已從主索引鍵移除,您將必須移除對應實體屬性的索引鍵指定。 如果資料行已從外部索引鍵移除,則會在剩餘的末端屬性之間建立新的關聯。 如果隨著實體屬性出現的資料行已加入至主索引鍵,則必須使實體屬性變成實體索引鍵。如需如何修改屬性的詳細資訊,請參閱 HOW TO:建立和修改純量屬性。 如果已加入的主索引鍵資料行先前已對應至關聯 (而非實體屬性),則會建立對應的新實體屬性。 |
|
資料行 |
已加入 |
已以相符的屬性和對應來更新對應的實體。如果對應的類型是繼承階層架構 (Inheritance Hierarchy) 的一部分,則只會以相符的屬性來更新 EntityType (最接近階層架構的根,而且對應至受影響資料表),如此可以防止階層架構中的子實體定義與其祖系相同的屬性。 |
已刪除 |
已刪除資料表的對應。 |
|
已重新命名 |
對概念模型和對應重新命名資料行的效果等同於刪除舊名稱的資料行並加入新名稱的資料行。 |
|
定義已改變 |
不會對概念模型或對應進行任何變更。如果資料行型別已變更,則可能需要手動更新模型,讓對應的實體屬性型別 (Property Type) 不相容。如需如何修改屬性的詳細資訊,請參閱 HOW TO:建立和修改純量屬性。 |
|
外部索引鍵 |
已加入 |
如果所有必要的實體類型都存在的話,則會將新的關聯和必要的對應加入至概念模型。 |
已刪除 |
不會對概念模型或對應進行任何變更。 |
|
已重新命名 |
不會對概念模型或對應進行任何變更。 |
|
預存程序 |
已加入 |
不會對概念模型或對應進行任何變更。預存程序可以隨著 Function Import 而進行手動加入至概念模型。如需詳細資訊,請參閱 HOW TO:匯入預存程序。 |
已刪除 |
已刪除預存程序的對應。如果 Function Import 已對應至預存程序,則必須將 Function Import 刪除或對應至不同預存程序。如果實體類型的插入、更新或刪除行為已對應至預存程序,則會刪除對應。 |
|
已重新命名 |
已為任何 Function Import 或實體類型的插入、更新或刪除行為刪除預存程序的對應。此對概念模型的效果等同於刪除舊名稱的預存程序並加入新名稱的預存程序。此外,您必須為已重新命名的預存程序建立新的 Function Import,或必須將原始 Function Import 重新對應至已重新命名的預存程序。 |
|
定義已改變 |
如果參數已加入至預存程序或已從預存程序移除,則預存程序的所有對應都會變成無效。如果 Function Import 已對應至預存程序,則必須刪除或重新建立 Function Import。如果實體類型的插入、更新或刪除行為已對應至預存程序,則可能需要重新對應行為。 |