我有以下服务操作,其中DataDTO是 复杂类型 (通过实体框架模型浏览器添加):
[WebGet]
public IQueryable<DataDTO> GetInformation(string id)
{
var resultList= (from data in context.Data
where data.ID ==id
select new
{
DataID = data.ID,
Name = data.Name,
Group = data.Group
})
.ToList()
.Select(item =>
new DataDTO
{
ID = item.ID,
Name= item.Name,
Group = item.Group
});
return resultList.AsQueryable();
}
当我使用客户端访问它时,我得到一个例外:
查询选项$ orderby,$ inlinecount,$ skip和$ top无法应用 到所请求的资源。
因此添加AsQueryable并不能解决问题。
考虑到复杂类型的使用,我应如何修改查询以返回IQueryable?
答案 0 :(得分:-1)
解决方案1:在服务操作方法上添加[SingleResult]属性,让WCF DS知道IQueryable只返回单个值
解决方案2:WCF OData服务方法不支持查询选项。通过将DataSource.paginate选项设置为false,尝试禁用数据源分页