【发布时间】:2013-06-02 11:03:41
【问题描述】:
我有项目实体和 ProjectDTO。 我正在尝试创建一个可以获取和返回 ProjectDTO 并使其支持 OData 的 WebAPI 控制器方法。
问题是我使用的 ORM 可以使用 Project 实体而不是 Project DTO 来查询数据库。有什么方法可以将基于 ProjectDTO 的 OData 过滤/排序/分页应用于项目实体查询?
public ODataQueryResult<ProjectDTO> GetProjects(ODataQueryOptions<ProjectDTO> query)
{
var context = new ORM_Context();
var projects = context.Projects; // IQueryable<Project>
var projectDtos = query.ApplyTo(projectDTOs)); // <-- I want to achieve something similar here
var projectDTOs =
projects.Select(
x =>
new ProjectDTO
{
Id = x.Id,
Name = x.Name
});
var projectsQueriedList = projectDtos.ToList();
var result = new ODataQueryResult<ProjectDTO>(projectsQueriedList, totalCount);
return result;
}
【问题讨论】:
-
你最后做了什么?
标签: c# asp.net-web-api odata