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),您有两个选项:

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()扩展方法来访问特定于原子的元数据,如作者、贡献者等。

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

于 2013-02-05T21:19:39.710 回答