【发布时间】:2013-03-25 07:35:52
【问题描述】:
我之前有一个如下所示的 Web API 控制器:
public IQueryable<ApiDesignOverview> GetList(
string brandIds = "",
string categoryIds = "",
string query = "",
string categoryOp = "or")
我听说 OData NuGet 包现在支持 $inlinecount OData 参数,所以我尝试使用来自 http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options 的说明添加它 - 我不想使用 OData 批发,因为这需要大量重新构建应用程序,所以我选择了PageResult<T> 选项。
所以现在我的控制器看起来像这样:
public PageResult<ApiDesignOverview> GetList(
ODataQueryOptions<ApiDesignOverview> options,
string brandIds = "",
string categoryIds = "",
string query = "",
string categoryOp = "or")
我现在的问题是:
- 如何模拟 ODataQueryOptions 以进行单元测试?
- 如果它们不能被模拟,我如何创建一个?我需要一个
ODataQueryContext来构造一个,这需要一个Microsoft.Data.Edm.IEdmModel,这需要......什么?我找不到这方面的任何文档。
真的,如果我能像以前一样从控制器签名中删除 ODataQueryOptions 会更好。这可能吗?
【问题讨论】:
标签: asp.net-mvc asp.net-web-api odata