如何使用Entity Framework复杂类型创建IQueryable结果

时间:2015-11-09 09:29:51

标签: c# entity-framework

我有以下服务操作,其中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?

1 个答案:

答案 0 :(得分:-1)

解决方案1:在服务操作方法上添加[SingleResult]属性,让WCF DS知道IQueryable只返回单个值

解决方案2:WCF OData服务方法不支持查询选项。通过将DataSource.paginate选项设置为false,尝试禁用数据源分页