HOW TO:把修改函式對應至預存程序

本主題說明如何使用 ADO.NET 實體資料模型設計工具 (Entity Designer) 將實體類型的插入、更新和刪除作業對應至預存程序 (Stored Procedure)。

Entity Framework 會產生從表示概念模型中之實體容器的 ObjectContext 衍生的類別 (衍生類別的名稱是概念模型檔案中 EntityContainer 的名稱)。這個類別會公開 SaveChanges 方法,其可觸發基礎資料庫的更新。這些更新可以使用系統 (預設值) 所自動產生的 SQL 陳述式 (Statement),或者可以使用開發人員所指定的預存程序。不論是否有使用預存程序來更新資料庫,建立、更新和刪除實體所用的應用程式程式碼都相同。

當您將實體類型的插入、更新和刪除作業對應至預存程序時,必須執行下列各項:

  • 將所有三個作業都對應至預存程序。

  • 一致地對應關聯。如果為一個作業將預存程序對應至關聯,則另兩個作業也必須對應該關聯。

  • 把有一對多關聯性的相關實體對應至預存程序。如果實體是經由一對一或多對多關聯性與其他實體產生關係,則不必將相關實體對應至預存程序。

把插入作業對應至預存程序

若要把插入作業對應至預存程序

  1. 按兩下 [方案總管] 中的 <model name>.edmx 檔案。

    該檔案隨即在 Entity Designer 中開啟。

  2. 以滑鼠右鍵按一下要對應插入作業的實體類型。

  3. 選取 [預存程序對應]。

    [對應詳細資料] 視窗的 [對應至實體函式] 窗格隨即出現。

  4. 按一下 [<選取插入函式>]。

  5. 從下拉式清單中選取將會對應插入作業的預存程序。

    隨即會將實體屬性與預存程序參數之間的預設對應填入視窗。

  6. 針對每個預存程序參數修改不適用的對應,方式是藉由按一下對應的屬性欄位並從下拉式清單中選取適合的屬性來達成。

    Cc716711.note(zh-tw,VS.100).gif注意:
    所有實體索引鍵都必須有對應。如果預存程序使用 INSERT 陳述式,則通常會將實體索引鍵對應至新資料列被插入時所建立的主索引鍵。接下來的幾個步驟說明如何將預存程序傳回的資料對應至實體屬性。

  7. 按一下 [<加入結果繫結>]。

    欄位會變成可編輯的狀態。

  8. 輸入含有預存程序已傳回之資料的參數名稱。

  9. 按一下對應至參數名稱的屬性欄位。

    欄位會變成屬性的下拉式清單。

  10. 選取要讓已傳回之資料對應的屬性。

  11. 為每個已傳回的值和未對應的屬性重複步驟 7 到 10。

所選實體類型的插入作業現在已對應至預存程序了。

把更新作業對應至預存程序

若要把更新作業對應至預存程序

  1. 按兩下 [方案總管] 中的 <model name>.edmx 檔案。

    該檔案隨即在 Entity Designer 中開啟。

  2. 以滑鼠右鍵按一下要對應更新作業的實體類型。

  3. 選取 [預存程序對應]。

    [對應詳細資料] 視窗的 [對應至實體函式] 窗格隨即出現。

  4. 按一下 [<選取更新函式>]。

  5. 從下拉式清單中選取將會對應更新作業的預存程序。

    隨即會將實體屬性與預存程序參數之間的預設對應填入視窗。

  6. 針對每個預存程序參數修改不適用的對應,方式是藉由按一下對應的屬性欄位並從下拉式清單中選取適合的屬性來達成。

  7. 針對每個屬性,您可以選擇性地選取 [使用原始值] 資料行中的方塊。

    [使用原始值] 選項可讓您使用並行存取控制。如果已為屬性選取 [使用原始值] 選項,則會將已從資料庫讀取的屬性值傳遞至指定的預存程序參數。請注意,屬性的原始值和目前值都可以同時傳遞至不同的參數。

    Cc716711.note(zh-tw,VS.100).gif注意:
    當您對應更新作業時,可以將預存程序已傳回的資料對應至實體屬性。接下來的幾個步驟說明如何將預存程序傳回的資料對應至實體屬性。

  8. 按一下 [<加入結果繫結>]。

    欄位會變成可編輯的狀態。

  9. 輸入含有預存程序已傳回之資料的參數名稱。

  10. 按一下對應至參數名稱的屬性欄位。

  11. 從下拉式清單中選取要讓已傳回之資料對應的屬性。

  12. 選擇性地為每個已傳回的值重複步驟 8 到 11。

所選實體類型的更新作業現在已對應至預存程序了。

把刪除作業對應至預存程序

若要把刪除作業對應至預存程序

  1. 按兩下 [方案總管] 中的 <model name>.edmx 檔案。

    該檔案隨即在 Entity Designer 中開啟。

  2. 以滑鼠右鍵按一下要對應刪除作業的實體類型。

  3. 選取 [預存程序對應]。

    [對應詳細資料] 視窗的 [對應至實體函式] 窗格隨即出現。

  4. 按一下 [<選取刪除函式>]。

  5. 從下拉式清單中選取將會對應刪除作業的預存程序。

    隨即會將實體屬性與預存程序參數之間的預設對應填入視窗。

  6. 針對每個預存程序參數修改不適用的對應,方式是藉由按一下對應的屬性欄位並從下拉式清單中選取適合的屬性來達成。

    Cc716711.note(zh-tw,VS.100).gif注意:
    您必須把關聯對應至預存程序參數,而從屬性下拉式清單中便能選擇可用的關聯。

另請參閱

工作

逐步解說:將實體對應至預存程序

其他資源

Stored Procedure Support (Entity Framework)
Application Code Using Stored Procedures (Entity Framework)