Freigeben über


Gewusst wie: Verwenden eines in einer Klassenbibliothek definierten Modells (Entity Data Model-Tools)

In diesem Themen wird die Verwendung eines Modells beschrieben, das in einem Visual Studio 2008-Klassenbibliothekprojekt definiert wurde.

Im ersten Verfahren in diesem Thema wird beschrieben, wie Sie ein konzeptionelles Modell verwenden, das in einer Klassenbibliothek eines Projekts definiert wurde, bei dem es sich nicht um ASP.NET-Websiteprojekt handelt. Im zweiten Verfahren wird beschrieben, wie Sie ein konzeptionelles Modell verwenden, das in einer Klassenbibliothek eines ASP.NET-Websiteprojekts definiert wurde.

So verwenden Sie ein in einer Klassenbibliothek aus einem Nicht-ASP.NET-Websiteprojekt definiertes Modells

  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 Klassenbibliothekprojekt ein konzeptionelles Modell hinzu.

    Informationen zum Erstellen eines neuen konzeptionellen Modells und Hinzufügen des Modells zu einem Projekt finden Sie unter Gewusst wie: Erstellen einer neuen EDMX-Datei (Entity Data Model-Tools). Informationen zum Hinzufügen eines vorhandenen konzeptionellen Modells zu einem Projekt finden Sie unter Gewusst wie: Hinzufügen einer vorhandenen EDMX-Datei (Entity Data Model-Tools).

  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, und wählen Sie Kopieren aus. Der kopierte Code sollte z. B. wie folgt aussehen:

    <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 zur Verbindungszeichenfolge in den <connectionStrings>-Knoten ein.

    Cc716677.note(de-de,VS.100).gifHinweis:
    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 jetzt im neu hinzugefügten Projekt Code schreiben, in dem das im Klassenbibliothekprojekt definierte konzeptionelle Modell verwendet wird.

Cc716677.note(de-de,VS.100).gifHinweis:
Sie müssen das neu hinzugefügte Projekt möglicherweise als Startprojekt festlegen, bevor Sie die Projektmappe erstellen.Klicken Sie dazu im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Als Startprojekt festlegen aus.

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

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

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

  2. Fügen Sie dem Klassenbibliothekprojekt ein konzeptionelles Modell hinzu.

    Informationen zum Erstellen eines neuen konzeptionellen Modells und Hinzufügen des Modells zu einem Projekt finden Sie unter Gewusst wie: Erstellen einer neuen EDMX-Datei (Entity Data Model-Tools). Informationen zum Hinzufügen eines vorhandenen konzeptionellen Modells zu einem Projekt finden Sie unter Gewusst wie: Hinzufügen einer vorhandenen EDMX-Datei (Entity Data Model-Tools).

  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 zur Verbindungszeichenfolge, klicken Sie mit der rechten Maustaste, und wählen Sie Kopieren aus. Der kopierte Code sollte z. B. wie folgt aussehen:

      <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 zur Verbindungszeichenfolge in den <connectionStrings>-Knoten ein.

Sie können jetzt im ASP.NET-Websiteprojekt Code schreiben, in dem das im Klassenbibliothekprojekt definierte konzeptionelle Modell verwendet wird.

Cc716677.note(de-de,VS.100).gifHinweis:
Sie müssen das neu hinzugefügte Projekt möglicherweise als Startprojekt festlegen, bevor Sie die Projektmappe 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 Zuordnungsdateien nicht als Ressourcen in die Klassenbibliotheksassembly ein, wenn Sie eine dieser Optionen auswählen.

So kopieren Sie Modell- und Zuordnungsdateien in den Ordner "Bin" eines ASP.NET-Websiteprojekts

  1. Doppelklicken Sie im Klassenbibliothekprojekt 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.

    Cc716677.note(de-de,VS.100).gifHinweis:
    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 z. B. wie folgt 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 Zuordnungsdateien 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

Ausführen von Bereitstellungsaufgaben mit den Entity Data Model-Tools
Aufgaben der Entity Data Model-Tools
Szenarien für die Verwendung der Entity Data Model-Tools
Connection Strings