Share via


HOW TO:使用類別庫中定義的模型

本主題說明如何在 Visual Studio 2008 類別庫 (Class Library) 專案中已定義 Entity Data Model (EDM) 時在專案內使用 EDM。

本主題的第一個程序說明如何從 ASP.NET 網站專案以外的專案內使用類別庫中定義的 EDM。第二個程序說明如何從 ASP.NET 網站專案內使用類別庫中定義的 EDM。

若要從 ASP.NET 網站專案以外的專案內使用類別庫中定義的 EDM

  1. 在 Visual Studio 中建立 Visual C# 或 Visual Basic 類別庫專案。

    如需在 Visual Studio 中建立專案的詳細資訊,請參閱 HOW TO:建立方案和專案 (英文)。

  2. 將 EDM 加入至類別庫專案。

    如需建立新的 EDM 並將它加入至專案的詳細資訊,請參閱 HOW TO:建立新的 Entity Data Model。如需將現有的 EDM 加入至專案的詳細資訊,請參閱 HOW TO:加入現有的 Entity Data Model

  3. 將新專案 (非 ASP.NET 網站專案) 加入至現有方案。

    如需將專案加入至現有方案的詳細資訊,請參閱 HOW TO:建立多專案的方案 (英文)。

  4. 以滑鼠右鍵按一下新加入的專案 (非類別庫專案),然後選取 [加入參考]。

    [加入參考] 對話方塊隨即出現。

  5. 按一下 [加入參考] 對話方塊的 [專案] 索引標籤,然後選取類別庫專案。按一下 [確定]。

  6. 再次以滑鼠右鍵按一下新加入的專案 (非類別庫專案),然後選取 [加入參考]。

  7. 按一下 [加入參考] 對話方塊的 [.NET] 索引標籤,然後選取 [System.Data.Entity]。按一下 [確定]。

  8. 開啟類別庫專案的 App.Config 檔案。

  9. 反白顯示 App.Config 檔案連接字串 (Connection String),然後以滑鼠右鍵按一下它,再選取 [複製]。例如,複製如下的程式碼:

    <add name="SchoolEntities" 
               connectionString="metadata=res://*/School.csdl|
                                          res://*/School.ssdl|
                                          res://*/School.msl;
                                 provider=System.Data.SqlClient;
                                 provider connection string=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
    
  10. 開啟新加入之專案的 App.Config 檔案,然後把複製的連接字串資訊貼入 <connectionStrings> 節點。

    Cc716677.note(zh-tw,VS.100).gif注意:
    如果該專案沒有 App.Config 檔案,您可以在 [方案總管] 中以滑鼠右鍵按一下該專案,然後指向 [加入],再選取 [新增項目],藉此加入這個檔案。從隨即開啟的對話方塊中選擇 [應用程式組態檔],然後按一下 [確定]。

您現在就可以在新加入的專案中撰寫程式碼,它將會使用類別庫專案中定義的 EDM。

Cc716677.note(zh-tw,VS.100).gif注意:
您可能必須在建置方案之前將新加入的專案設定為啟始專案。若要這麼做,請在 [方案總管] 中以滑鼠右鍵按一下該專案,然後選取 [設定為啟始專案]。

若要從 ASP.NET 網站專案內使用類別庫中定義的 EDM

  1. 在 Visual Studio 中建立 Visual C# 或 Visual Basic 類別庫專案。

    如需在 Visual Studio 中建立專案的詳細資訊,請參閱 HOW TO:建立方案和專案 (英文)。

  2. 將 EDM 加入至類別庫專案。

    如需建立新的 EDM 並將它加入至專案的詳細資訊,請參閱 HOW TO:建立新的 Entity Data Model。如需將現有的 EDM 加入至專案的詳細資訊,請參閱 HOW TO:加入現有的 Entity Data Model

  3. 將 ASP.NET 網站專案加入至現有方案。

    如需將專案加入至現有方案的詳細資訊,請參閱 HOW TO:建立多專案的方案 (英文)。

  4. 以滑鼠右鍵按一下 ASP.NET 網站專案,然後選取 [加入參考]。

    [加入參考] 對話方塊隨即出現。

  5. 按一下 [加入參考] 對話方塊的 [.NET] 索引標籤,然後選取 [System.Data.Entity]。按一下 [確定]。

  6. 下一個步驟是從 ASP.NET 網站專案參考類別庫專案。有兩種方式可讓您完成這個步驟:

    1. 在 [方案總管] 中以滑鼠右鍵按一下 ASP.NET 網站專案,然後選取 [加入參考]。

      [加入參考] 對話方塊隨即出現。

    2. 按一下 [加入參考] 對話方塊的 [專案] 索引標籤,然後選取類別庫專案。按一下 [確定]。

    -或-

    1. 在 [方案總管] 中以滑鼠右鍵按一下類別庫專案,然後選取 [建置]。

      類別庫組件 (Assembly) 隨即加入至專案的 bin\Debug 資料夾。

    2. 以滑鼠右鍵按一下 ASP.NET 網站專案,然後選取 [加入 ASP.NET 資料夾]。選取 [Bin]。

      [Bin] 資料夾隨即加入至專案。

    3. 在 [Windows 檔案總管] 中巡覽至類別庫專案的 bin\Debug 資料夾。以滑鼠右鍵按一下專案組件 (<project_name>.dll 檔案),然後選取 [複製]。

    4. 在 [方案總管] 中的 ASP.NET 網站專案下方以滑鼠右鍵按一下 [Bin] 資料夾,然後選取 [貼上]。

  7. 下一個步驟是讓模組和對應檔供 ASP.NET 網站專案使用。您可以嵌入模組和對應檔做為類別庫組件中的資源來達成目的,如下列步驟所示。如需替代方法,請參閱位於本主題結尾的程序:<將對應檔和中繼資料檔複製至 ASP.NET 網站專案>。

    1. 開啟類別庫專案的 App.Config 檔案。

    2. 反白顯示連接字串資訊,然後以滑鼠右鍵按一下它,再選取 [複製]。例如,複製如下的程式碼:

      <add name="SchoolEntities" 
                 connectionString="metadata=res://*/School.csdl|
                                            res://*/School.ssdl|
                                            res://*/School.msl;
                                   provider=System.Data.SqlClient;
                                   provider connection string=&quot;
                                   Data Source=(local);
                                   Initial Catalog=School;
                                   Integrated Security=True;
                                   MultipleActiveResultSets=True&quot;" 
                 providerName="System.Data.EntityClient" />
      
    3. 開啟 ASP.NET 網站專案的 Web.config 檔案,然後把複製的連接字串資訊貼入 <connectionStrings> 節點。

您現在就可以在 ASP.NET 網站專案中撰寫程式碼,它將會使用類別庫專案中定義的 EDM。

Cc716677.note(zh-tw,VS.100).gif注意:
您可能必須在建置方案之前將新加入的專案設定為啟始專案。若要這麼做,請在 [方案總管] 中以滑鼠右鍵按一下該專案,然後選取 [設定為啟始專案]。

將對應檔和中繼資料檔複製至 ASP.NET 網站專案

下列程序說明兩個適用於將模組和對應檔複製至 ASP.NET 網站專案的選項。此處說明的兩個方法都可以取代前述程序中的步驟 7。第一個程序說明如何將檔案複製至 ASP.NET 網站專案的 [Bin] 資料夾,第二個程序說明如何將檔案複製至 [App_Data] 資料夾。如果您選擇使用這兩個選項時,請不要嵌入模組和對應檔做為類別庫組件中的資源。

若要將對應檔和中繼資料檔複製至 ASP.NET 網站專案的 Bin 資料夾

  1. 按兩下類別庫專案中的 .edmx 檔案。.edmx file 檔案隨即在 ADO.NET 實體資料模型設計工具 (Entity Designer) 中開啟。

  2. 以滑鼠右鍵按一下設計介面的空白區域,然後選取 [屬性]。

  3. 在 [屬性] 視窗中將 [Metadata Artifact Processing] 屬性設為 [複製到輸出目錄]。選取這個值時,Entity Designer 會將類別庫的 App.Config 檔案中的連接字串變更為有相對檔案路徑。

  4. 在 [方案總管] 中以滑鼠右鍵按一下類別庫專案,然後選取 [建置]。

  5. 在 [Windows 檔案總管] 中巡覽至類別庫輸出目錄 (bin\Debug 資料夾),然後複製 .csdl、.ssdl 和 .msl 檔案。

  6. 在 ASP.NET 網站專案下方以滑鼠右鍵按一下 [Bin] 資料夾,然後選取 [貼上]。

    Cc716677.note(zh-tw,VS.100).gif注意:
    如果該專案沒有包含 [Bin] 資料夾,您可以在 [方案總管] 中以滑鼠右鍵按一下該專案,然後指向 [加入 ASP.NET 資料夾],再選取 [Bin],藉此加入這個資料夾。

  7. 開啟類別庫專案的 App.Config 檔案。反白顯示連接字串資訊,然後以滑鼠右鍵按一下它,再選取 [複製]。

  8. 開啟 ASP.NET 網站專案的 Web.config 檔案,然後把複製的連接字串資訊貼入 <connectionStrings> 節點。

  9. 在連接字串內將中繼資料項目的前置字元變更為 ~\bin\。例如,複製並修改過的連接字串項目應該看起來像這樣:

    <add name="SchoolEntities" 
             connectionString="metadata=~\bin\School.csdl|
                                        ~\bin\School.ssdl|
                                        ~\bin\School.msl;
                               provider=System.Data.SqlClient;
                               provider connection string=&quot;
                               Data Source=(local);
                               Initial Catalog=School;
                               Integrated Security=True;
                               MultipleActiveResultSets=True&quot;" 
             providerName="System.Data.EntityClient" />
    

若要將模組和中繼資料檔複製至 ASP.NET 網站專案的 App_Data 資料夾

  • 將模組和中繼資料檔複製至 [App_Data] 資料夾所採取的步驟與將它們複製至 [Bin] 資料夾所採取的步驟類似,但是有幾個主要差異之處:

    • 必須將 .csdl、.ssdl 和 .msl 檔案複製至 ASP.NET 網站專案的 [App_Data] 資料夾,而非 [Bin] 資料夾 (前述的步驟 6)。

      注意:如果該專案沒有包含 [App_Data] 資料夾,您可以在 [方案總管] 中以滑鼠右鍵按一下該專案,然後指向 [加入 ASP.NET 資料夾],再選取 [App_Data],藉此加入這個資料夾。

    • 在將連接字串資訊從類別庫的 App.Config 檔案複製至 ASP.NET 網站的 Web.config 檔案 (前述的步驟 7 和 8) 之後,必須將中繼資料項目的前置字元變更為 |DataDirectory|。例如,複製並修改過的連接字串項目應該看起來像這樣:

      <add name="SchoolEntities" 
               connectionString="metadata=|DataDirectory|\School.csdl|
                                          |DataDirectory|\School.ssdl|
                                          |DataDirectory|\School.msl;
                                 provider=System.Data.SqlClient;
                                 provider connection string=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
      

另請參閱

其他資源

使用 Entity Designer 部署工作
Entity Data Model 工具工作
ADO.NET 實體資料模型設計工具案例
Connection Strings