请原谅我的术语,如果不正确,但我宁愿不将Azure表实体对象直接暴露给最终用户,尽管我想公开IQueryable。
如何将IQueryable<TableEntity>
转换为IQueryable<Object>
我基于我的oData逻辑,如本博客所述。如果你有一个更好的方式,请分享。
答案 0 :(得分:1)
WCF数据服务可以使用Reflection Provider公开任意对象。您可以使用您喜欢的属性创建普通的旧C#类,而不是通过继承TableServiceEntity来创建类。在查询方法中,添加.Select()语句以创建POCO类而不是服务类。
您还可以查看How to: Create a Data Service Using the Reflection Provider (WCF Data Services)以获取分步指南。
另一方面,您的TableServiceEntity不必与底层列完全匹配。您可以创建具有较少列的实体,并使用Select语句
返回这些实体