我有表格的服务操作:

[WebGet]
public IQueryable<BusinessObject> BusinessObjectsByType(string name)

使用访问规则

config.SetServiceOperationAccessRule("BusinessObjectsByType", ServiceOperationRights.All);

当我通过Web浏览器访问此服务操作时,它会曝光数据,但不会以供稿和条目(Atompub格式)访问,并且它也不会让我使用基本查询选项,例如$ top,$ proceby等对于要求的资源'。我已经匹配了指定的所有要求 http://msdn.microsoft.com/en-us/library/cc668788.aspx 但是没有成功。任何帮助将不胜感激。谢谢。

有帮助吗?

解决方案

如果未将BusSinesObject视为实体,则将将服务操作视为返回IEnumerable。为了进行查询以进行工作,服务操作必须在t是实体类型的情况下返回可返回的。假设EF或反射提供商实体类型是具有关键属性(通过启发式或通过DataServicekey属性)的类型,并且在该类型类型的上下文类别上都有一个属性。如果BusSinesObject不是实体,则WCF数据服务将无法支持有关服务操作结果的查询。仅举一个原因,有很多原因:为了序列化响应,每个对象必须具有唯一的URL(ATOM:ID),才能生成唯一的URL对象必须具有关键属性。关键属性只能在实体上定义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top