LinqToQuerystring attibute的原因:LinqToQueryable

时间:2015-09-28 11:44:24

标签: linq attributes asp.net-web-api2

LinqToQuerystring的webapi包中有一个属性(LinqToQueryable),但我无法找到它的工作原理。

  • 是否会修改返回的结果?
  • 是否启用了LinqToQuerystring? (但是如何获得查询字符串呢?)
  • 其他?

1 个答案:

答案 0 :(得分:0)

事实证明,属性[LinqToQueryable]过滤/ orders / ...返回时的可查询结果。

要在webapi2中获取查询字符串,我创建了一个扩展方法:

public static class RequestExtensions
{
    public static string GetQueryString(this HttpRequestMessage request)
    {
        return request.GetQueryNameValuePairs().Select(x => x.Key + "=" + x.Value).Aggregate((i, j) => i + "&" + j);
    }
}

但我怀疑这也可以用ODataRequestOptions作为(webapi)方法的参数而不是使用查询字符串来完成。唯一的问题是我不知道如何将其转换为字符串。 此ODataRequestOption的优点是您可以轻松地耦合验证器。