我以前有一个看起来像这样的 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 进行单元测试?
- 如果他们不能被嘲笑,我该如何创造一个?我需要 a
ODataQueryContext
来构建一个,这需要 aMicrosoft.Data.Edm.IEdmModel
,这需要...什么?我找不到任何文档。
真的,如果我能像以前一样从控制器签名中删除 ODataQueryOptions 会更好。这可能吗?