0

OData Provider Toolkitを使用して、カスタムデータをODataフィードとして公開しています。著者フィールドが常に設定されていないことに気づきました。

<entry>
  <id>http://localhost/sample.svc/Entity</id>
  <title type="text"/>
  <updated>2013-01-30T01:02:28Z</updated>
  <author>
    <name/>
  </author>

このツールキットを使用してプログラムで作成者を設定する方法はありますか?結果を生成する関連するAtomフィードのSyndicationItemsにアクセスする方法を見つけることができませんでした。

4

1 に答える 1

2

そのツールキットで使用しているWCFデータサービスのバージョン(つまり、System.Data.Services.DataService)に応じて、ここでは2つのオプションがあります。

1)いわゆる「エンティティプロパティマッピング」を使用して、特定のプロパティの値を作成者フィールドに入力するようにシステムに指示します。この機能は、.NET 4.0以降に存在します(3.5SP1へのアップデートを通じても利用できます)。これをオンにするには、ResourceType.AddEntityPropertyMappingAttribute API(http://msdn.microsoft.com/en-us/library/system.data.services.providers.resourcetype.addentitypropertymappingattribute.aspx)を調べます。

2)データサービスで使用されているODataWriterをラップするための最近追加されたサポートを使用して、書き出されるODataEntryのインスタンスをカスタマイズします。これは、NuGet( http://nuget.org/packages/Microsoft.Data.Services/ )にあるバージョン5.1以降でのみ使用できます。ライターをラップするには、DataService.CreateODataWriterデリゲートプロパティに接続する必要があります。これを使用する方法の例は、http://odatasamples.codeplex.com/SourceControl/changeset/view/be77d3cacb2c#WcfDataServices101/WcfDataServices101.CustomizedEntityLinks/CustomizedEntityLinksService.svc.csで確認できます。WriteStartメソッドに入ると、 ODataEntry.Atom()を使用できます。著者、寄稿者などのアトム固有のメタデータにアクセスするための拡張メソッド。

お役に立てば幸いです。必要に応じて、より正確なコード例を提供できます。

于 2013-02-05T21:19:39.710 に答える