Gewusst wie: Anpassen von Feeds mit dem Entity Framework-Anbieter (WCF Data Services)
WCF Data Services ermöglicht es Ihnen, die Atom-Serialisierung in einer Datendienstantwort anzupassen, damit Eigenschaften einer Entität nicht verwendeten Elementen zugeordnet werden können, die im AtomPub-Protokoll definiert werden. In diesem Thema wird gezeigt, wie Zuordnungsattribute für die Entitätstypen in einem Datenmodell definiert werden, das in einer EDMX-Datei mit dem Entity Framework-Anbieter definiert wird. Weitere Informationen finden Sie unter Feedanpassung (WCF Data Services).
In diesem Thema ändern Sie die Tool-generierte EDMX-Datei, die das Datenmodell enthält, manuell. Sie müssen die Datei manuell ändern, da Erweiterungen des Datenmodells nicht vom Entity Designer unterstützt werden. Weitere Informationen zur von den Entity Data Model-Tools generierten EDMX-Datei finden Sie unter .edmx File Overview (Entity Framework). Im Beispiel in diesem Thema werden der Northwind-Beispieldatendienst und automatisch generierte Clientdatendienstklassen verwendet. Dieser Dienst und die Clientdatenklassen werden erstellt, wenn Sie den WCF Data Services-Schnellstart ausführen.
So ändern Sie manuell die Datei Northwind.edmx, um Feedanpassungsattribute hinzuzufügen
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Northwind.edmx, und klicken Sie dann auf Öffnen mit.
Wählen Sie im Dialogfeld Öffnen mit - Northwind.edmx die Option XML-Editor aus, und klicken Sie dann auf OK.
Suchen Sie das ConceptualModels-Element, und ersetzen Sie den vorhandenen
Customers
-Entitätstyp durch das folgende Element, das Feedanpassungszuordnungsattribute enthält:<EntityType Name="Customer" m:FC_SourcePath="CustomerID" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true"> <Key> <PropertyRef Name="CustomerID" /> </Key> <Property Name="CustomerID" Type="String" Nullable="false" MaxLength="5" Unicode="true" FixedLength="true" /> <Property Name="ContactName" Type="String" MaxLength="30" Unicode="true" FixedLength="false" m:FC_TargetPath="SyndicationAuthorName" m:FC_ContentKind="text" m:FC_KeepInContent="true" /> <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" m:FC_TargetPath="CompanyName" m:FC_NsPrefix="Northwind" m:FC_NsUri="http://schemas.examples.microsoft.com/dataservices" m:FC_KeepInContent="true" /> <Property Name="ContactTitle" Type="String" MaxLength="30" Unicode="true" FixedLength="false" m:FC_TargetPath="SyndicationLinkHref" m:FC_ContentKind="text" m:FC_KeepInContent="true" m:FC_Criteria="SyndicationLinkRel" m:FC_CriteriaValue="http://NorthwindTraders.com/MyPhotos" /> <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" /> <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" /> <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" /> <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> <Property Name="Fax" Type="String" MaxLength="24" Unicode="true" FixedLength="false" /> <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Customers" FromRole="Customers" ToRole="Orders" /> </EntityType>
Speichern Sie die Änderungen, und schließen Sie die Datei Northwind.edmx.
(Optional) Klicken Sie mit der rechten Maustaste auf die Datei Northwind.edmx, und klicken Sie dann auf Benutzerdefiniertes Tool ausführen.
Hierdurch wird die Objektebenendatei erneut erstellt, was möglicherweise erforderlich ist.
Kompilieren Sie das Projekt neu.
Beispiel
Das vorherige Beispiel gibt das folgende Ergebnis für den URI http://myservice/
Northwind.svc/Customers('ALFKI')
zurück.
<entry xml:base="https://localhost:12345/Northwind.svc/"
xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<id>https://localhost:12345/Northwind.svc/Customers('ALFKI')</id>
<title type="text">ALFKI</title>
<updated>2009-07-27T07:59:43Z</updated>
<author>
<name>Peter Franken</name>
</author>
<link rel="edit" title="Customers" href="Customers('ALFKI')" />
<link rel="https://schemas.microsoft.com/ado/2007/08/dataservices/related/Orders"
type="application/atom+xml;type=feed" title="Orders"
href="Customers('ALFKI')/Orders" />
<category term="NorthwindModel.Customers"
scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:ContactName>Peter Franken</d:ContactName>
<d:CompanyName>Alfreds Futterkiste</d:CompanyName>
<d:ContactTitle>Marketing Manager</d:ContactTitle>
<d:Address>Obere Str. 57</d:Address>
<d:City>Berlin</d:City>
<d:Region m:null="true" />
<d:PostalCode>12209</d:PostalCode>
<d:Country>Germany</d:Country>
<d:Phone>089-0877310</d:Phone>
<d:Fax>089-0877554</d:Fax>
</m:properties>
</content>
<Northwind:CompanyName
xmlns:Northwind="http://schemas.examples.microsoft.com/dataservices">Alfreds Futterkiste</Northwind:CompanyName>
</entry>