设置OData Provider Toolkit响应的author字段

时间:2013-02-01 00:32:15

标签: odata toolkit

我们使用OData Provider Toolkit将自定义数据公开为OData Feed。我们注意到作者字段总是未设置:

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

有没有办法使用此工具包以编程方式设置作者?我们无法找到一种方法来访问生成结果的关联Atom订阅源的SyndicationItem。

1 个答案:

答案 0 :(得分:2)

根据您使用该工具包的WCF数据服务版本(即System.Data.Services.DataService),您可以在此处选择两个选项:

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 实例。这仅适用于版本5.1及更高版本,可在NuGet(http://nuget.org/packages/Microsoft.Data.Services/)中找到。要包装编写器,您需要连接到DataService.CreateODataWriter委托属性。您可以在此处查看如何使用此示例的示例:http://odatasamples.codeplex.com/SourceControl/changeset/view/be77d3cacb2c#WcfDataServices101/WcfDataServices101.CustomizedEntityLinks/CustomizedEntityLinksService.svc.cs。进入 WriteStart 方法后,您可以使用 ODataEntry.Atom()扩展方法来访问特定于原子的元数据,如作者,贡献者等。< / p>

希望有所帮助,我可以根据需要提供更准确的代码示例。