Freigeben über


Gewusst wie: Verwenden eines in einer Klassenbibliothek definierten Modells

In diesem Thema wird die Verwendung eines Entity Data Model (EDM) in einem Projekt beschrieben, wenn das EDM in einem Visual Studio 2008-Klassenbibliotheksprojekt definiert ist.

Das erste Verfahren in diesem Thema beschreibt die Verwendung eines in einer Klassenbibliothek definierten EDM in Projekten, die keine ASP.NET-Websiteprojekte sind. Das zweite Verfahren beschreibt die Verwendung eines in einer Klassenbibliothek definierten EDM in einem ASP.NET-Websiteprojekt.

So verwenden Sie ein in einer Klassenbibliothek definiertes EDM in Projekten, die keine ASP.NET-Websiteprojekte sind

  1. Erstellen Sie in Visual Studio ein Visual C#- oder ein Visual Basic-Klassenbibliotheksprojekt.

    Informationen zum Erstellen von Projekten in Visual Studio finden Sie unter Gewusst wie: Erstellen von Projektmappen und Projekten.

  2. Fügen Sie dem Klassenbibliotheksprojekt ein EDM hinzu.

    Informationen zum Erstellen eines neuen EDM und zum Hinzufügen des EDM zu einem Projekt finden Sie unter Gewusst wie: Erstellen eines neuen Entity Data Model. Informationen zum Hinzufügen eines vorhandenen EDM zu einem Projekt finden Sie unter Gewusst wie: Hinzufügen eines vorhandenen Entity Data Model.

  3. Fügen Sie der vorhandenen Projektmappe ein neues Projekt hinzu, das kein ASP.NET-Websiteprojekt ist.

    Informationen zum Hinzufügen eines Projekts zu einer vorhandenen Projektmappe finden Sie unter Gewusst wie: Erstellen von Projektmappen mit mehreren Projekten.

  4. Klicken Sie mit der rechten Maustaste auf das neu hinzugefügte Projekt (nicht das Klassenbibliotheksprojekt), und wählen Sie Verweis hinzufügen aus.

    Das Dialogfeld Verweis hinzufügen wird angezeigt.

  5. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte Projekte, und wählen Sie das Klassenbibliotheksprojekt aus. Klicken Sie auf OK.

  6. Klicken Sie ein weiteres Mal mit der rechten Maustaste auf das neu hinzugefügte Projekt (nicht das Klassenbibliotheksprojekt), und wählen Sie Verweis hinzufügen aus.

  7. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte .NET, und wählen Sie System.Data.Entity aus. Klicken Sie auf OK.

  8. Öffnen Sie die Datei App.Config des Klassenbibliotheksprojekts.

  9. Markieren Sie den Abschnitt mit der Verbindungszeichenfolge der Datei App.Config, klicken Sie mit der rechten Maustaste darauf, und wählen Sie Kopieren aus. Kopieren Sie z. B. den Code, der dem folgenden Code ähnelt:

    <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. Öffnen Sie die Datei App.Config des neu hinzugefügten Projekts, und fügen Sie die kopierten Informationen der Verbindungszeichenfolge in den Knoten <connectionStrings> ein.

    NoteHinweis

    Wenn das Projekt nicht über eine Datei App.Config verfügt, können Sie diese hinzufügen, indem Sie mit der rechten Maustaste auf den Projektmappen-Explorer klicken, auf Hinzufügen zeigen und Neues Element auswählen. Wählen Sie im angezeigten Dialogfeld Anwendungskonfigurationsdatei aus, und klicken Sie auf OK.

Sie können nun Code in dem neu hinzugefügten Projekt schreiben, in dem das im Klassenbibliotheksprojekt definierte EDM verwendet wird.

NoteHinweis

Sie müssen möglicherweise das neu hinzugefügte Projekt als Startprojekt festlegen, bevor Sie die Lösung erstellen. Klicken Sie hierzu mit der rechten Maustaste im Projektmappen-Explorer auf das Projekt, und wählen Sie Als Startprojekt festlegen aus.

So verwenden Sie ein in einer Klassenbibliothek definiertes EDM in einem ASP.NET-Websiteprojekt

  1. Erstellen Sie in Visual Studio ein Visual C#- oder ein Visual Basic-Klassenbibliotheksprojekt.

    Informationen zum Erstellen von Projekten in Visual Studio finden Sie unter Gewusst wie: Erstellen von Projektmappen und Projekten.

  2. Fügen Sie dem Klassenbibliotheksprojekt ein EDM hinzu.

    Informationen zum Erstellen eines neuen EDM und zum Hinzufügen des EDM zu einem Projekt finden Sie unter Gewusst wie: Erstellen eines neuen Entity Data Model. Informationen zum Hinzufügen eines vorhandenen EDM zu einem Projekt finden Sie unter Gewusst wie: Hinzufügen eines vorhandenen Entity Data Model.

  3. Fügen Sie der vorhandenen Projektmappe ein ASP.NET-Websiteprojekt hinzu.

    Informationen zum Hinzufügen eines Projekts zu einer vorhandenen Projektmappe finden Sie unter Gewusst wie: Erstellen von Projektmappen mit mehreren Projekten.

  4. Klicken Sie mit der rechten Maustaste auf das ASP.NET-Websiteprojekt, und wählen Sie Verweis hinzufügen aus.

    Das Dialogfeld Verweis hinzufügen wird angezeigt.

  5. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte .NET, und wählen Sie System.Data.Entity aus. Klicken Sie auf OK.

  6. Der nächste Schritt besteht darin, vom ASP.NET-Websiteprojekt auf das Klassenbibliotheksprojekt zu verweisen. Dazu stehen zwei Möglichkeiten zur Verfügung:

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das ASP.NET-Websiteprojekt, und wählen Sie Verweis hinzufügen aus.

      Das Dialogfeld Verweis hinzufügen wird angezeigt.

    2. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte Projekte, und wählen Sie das Klassenbibliotheksprojekt aus. Klicken Sie auf OK.

    – ODER –

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Klassenbibliotheksprojekt, und wählen Sie Erstellen aus.

      Die Klassenbibliotheksassembly wird dem Ordner bin\Debug des Projekts hinzugefügt.

    2. Klicken Sie mit der rechten Maustaste auf das ASP.NET-Websiteprojekt, und wählen Sie ASP.NET-Ordner hinzufügen aus. Wählen Sie Bin aus.

      Dem Projekt wird der Ordner Bin hinzugefügt.

    3. Navigieren Sie in Windows-Explorer zum Ordner bin\Debug des Klassenbibliotheksprojekts. Klicken Sie mit der rechten Maustaste auf die Projektassembly (die Datei <Projektname>.dll), und wählen Sie Kopieren aus.

    4. Klicken Sie im Projektmappen-Explorer unter dem ASP.NET-Websiteprojekt mit der rechten Maustaste auf den Ordner Bin, und wählen Sie Einfügen aus.

  7. Der nächste Schritt besteht darin, die Modell- und Mappingdateien für das ASP.NET-Websiteprojekt verfügbar zu machen. Dazu können Sie, wie in den folgenden Schritten beschrieben, die Modell- und Mappingdateien als Ressourcen in die Klassenbibliotheksassembly einbetten. Alternative Methoden finden Sie in dem am Ende dieses Themas beschriebenen Verfahren ("So kopieren Sie Mapping- und Metadatendateien in ein ASP.NET-Websiteprojekt").

    1. Öffnen Sie die Datei App.Config des Klassenbibliotheksprojekts.

    2. Markieren Sie die Informationen der Verbindungszeichenfolge, klicken Sie mit der rechten Maustaste, und wählen Sie Kopieren aus. Kopieren Sie z. B. den Code, der dem folgenden Code ähnelt:

      <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. Öffnen Sie die Datei Web.config des ASP.NET-Websiteprojekts, und fügen Sie die kopierten Informationen der Verbindungszeichenfolge in den Knoten <connectionStrings> ein.

Sie können nun Code in dem ASP.NET-Websiteprojekt schreiben, in dem das im Klassenbibliotheksprojekt definierte EDM verwendet wird.

NoteHinweis

Sie müssen möglicherweise das neu hinzugefügte Projekt als Startprojekt festlegen, bevor Sie die Lösung erstellen. Klicken Sie hierzu mit der rechten Maustaste im Projektmappen-Explorer auf das Projekt, und wählen Sie Als Startprojekt festlegen aus.

Kopieren von Mapping- und Metadatendateien in ein ASP.NET-Websiteprojekt

Die folgenden Verfahren beschreiben zwei Optionen zum Kopieren von Modell- und Mappingdateien in ein ASP.NET-Websiteprojekt. Beide hier beschriebenen Methoden sind Alternativen zu Schritt 7 im oben dargestellten Verfahren. Das erste Verfahren beschreibt die Vorgehensweise beim Kopieren der Dateien in den Ordner Bin eines ASP.NET-Websiteprojekts, und das zweite Verfahren beschreibt die Vorgehensweise beim Kopieren der Dateien in den Ordner App_Data. Betten Sie die Modell- und Mappingdateien nicht als Ressourcen in die Klassenbibliotheksassembly ein, wenn Sie eine dieser Optionen auswählen.

So kopieren Sie Mapping- und Metadatendateien in den Ordner "Bin" eines ASP.NET-Websiteprojekts

  1. Doppelklicken Sie im Klassenbibliotheksprojekt auf die EDMX-Datei. Die EDMX-Datei wird im ADO.NET Entity Data Model-Designer (Entity Designer) geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf einen leeren Bereich der Entwurfsoberfläche, und wählen Sie Eigenschaften aus.

  3. Legen Sie im Fenster Eigenschaften den Wert der Eigenschaft Verarbeitung der Metadatenartefakte auf In Ausgabeverzeichnis kopieren fest. Wenn Sie diesen Wert auswählen, ändert der Entity Designer die Pfadangaben in der Verbindungszeichenfolge in der Datei App.Config in relative Dateipfade.

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Klassenbibliotheksprojekt, und wählen Sie Erstellen aus.

  5. Navigieren Sie in Windows-Explorer zum Ausgabeverzeichnis (Ordner bin\Debug) der Klassenbibliothek, und kopieren Sie die CSDL-, SSDL- und MSL-Dateien.

  6. Klicken Sie mit der rechten Maustaste unter dem ASP.NET-Websiteprojekt auf den Ordner Bin, und wählen Sie Einfügen aus.

    NoteHinweis

    Wenn das Projekt keinen Bin-Ordner enthält, können Sie diesen hinzufügen, indem Sie mit der rechten Maustaste im Projektmappen-Explorer auf das Projekt klicken, auf ASP.NET-Ordner hinzufügen zeigen und Bin auswählen.

  7. Öffnen Sie die Datei App.Config des Klassenbibliotheksprojekts. Markieren Sie die Informationen der Verbindungszeichenfolge, klicken Sie mit der rechten Maustaste darauf, und wählen Sie Kopieren aus.

  8. Öffnen Sie die Datei Web.config des ASP.NET-Websiteprojekts, und fügen Sie die kopierten Informationen der Verbindungszeichenfolge in den Knoten <connectionStrings> ein.

  9. Ändern Sie die Metadateneinträge in der Verbindungszeichenfolge, damit diesen ~\bin\ vorangestellt wird. Der kopierte und geänderte Verbindungszeichenfolgeneintrag sollte etwa folgendermaßen aussehen:

    <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" />
    

So kopieren Sie die Modell- und Mappingdateien in den Ordner 'App_Data' der ASP.NET-Website

  • Die Schritte zum Kopieren der Modell- und Mappingdateien in den Ordner App_Data gleichen den Schritten zum Kopieren der Dateien in den Ordner Bin. Es gibt jedoch zwei wichtige Unterschiede:

    • Die CSDL-, SSDL- und MSL-Dateien sollten in den Ordner App_Data des ASP.NET-Websiteprojekts kopiert werden und nicht in den Ordner Bin (Schritt 6 oben).

      Hinweis   Wenn das Projekt nicht den Ordner App_Data enthält, können Sie diesen hinzufügen, indem Sie mit der rechten Maustaste im Projektmappen-Explorer auf das Projekt klicken, auf ASP.NET-Ordner hinzufügen zeigen und App_Data auswählen.

    • Ändern Sie nach dem Kopieren der Informationen der Verbindungszeichenfolge aus der Datei App.Config der Klassenbibliothek in die Datei Web.config der ASP.NET-Website (Schritte 7 und 8 oben) die Metadateneinträge so, dass ihnen die Zeichenfolge |DataDirectory| vorangestellt ist. Der kopierte und geänderte Verbindungszeichenfolgeneintrag sollte etwa folgendendermaßen aussehen:

      <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" />
      

Siehe auch

Weitere Ressourcen

Bereitstellungsaufgaben mit dem Entity Designer
Aufgaben der Entity Data Model-Tools
Szenarios für den ADO.NET Entity Data Model-Designer
Verbindungszeichenfolgen (Entity Framework)