【问题标题】:How to create IQueryable results using Entity Framework complex types如何使用实体框架复杂类型创建 IQueryable 结果
【发布时间】:2015-11-09 09:29:50
【问题描述】:

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

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

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

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

    【讨论】:

    • 当我返回一个 list 实体时,使用 SingleResult 对我不利。另外,分页是数据服务的本质,我打算继续使用它,所以你的建议对我没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多