使用oData公开Azure表但使用“域”对象而不是Azure实体对象

时间:2011-02-24 17:41:52

标签: azure odata iqueryable azure-storage azure-table-storage

请原谅我的术语,如果不正确,但我宁愿不将Azure表实体对象直接暴露给最终用户,尽管我想公开IQueryable。

如何将IQueryable<TableEntity>转换为IQueryable<Object>

我基于我的oData逻辑,如本博客所述。如果你有一个更好的方式,请分享。

http://blogs.southworks.net/fboerr/2010/07/29/create-a-wcf-data-service-odata-to-share-an-azure-table/

1 个答案:

答案 0 :(得分:1)

WCF数据服务可以使用Reflection Provider公开任意对象。您可以使用您喜欢的属性创建普通的旧C#类,而不是通过继承TableServiceEntity来创建类。在查询方法中,添加.Select()语句以创建POCO类而不是服务类。

您还可以查看How to: Create a Data Service Using the Reflection Provider (WCF Data Services)以获取分步指南。

另一方面,您的TableServiceEntity不必与底层列完全匹配。您可以创建具有较少列的实体,并使用Select语句

返回这些实体