如何在 .ashx 上手动创建 ODataQueryOptions

2024-03-29

我想重建我的上一个项目。 过去,我没有使用任何 Web API。 我可以使用 ODataQueryOptions 来执行 $filter、$orderby 、$top 、$skip 操作吗 对于我自己的 handler.ashx 中的查询? 就像是。

var option = new ODataQueryOptions(request.params);
var query = option.ApplyTo(db.products);

根据上面 sfuqua 的回答,我制作了自己的帮助程序类,该类基于 Odata Uri 构建 OdataQueryOptions 类:

using System.Linq;
using System.Net.Http;
using System.Web.Http.OData;
using System.Web.Http.OData.Builder;
using System.Web.Http.OData.Query;

namespace OdataHelpers
{
    public static class ODataBuilder<T>
    {
        public static ODataQueryOptions<T> BuildOptions(string oDataUri)
        {
            var baseUri = "";
            var odUri = "";
            var spl = oDataUri.Split('?');
            if (spl.Count() == 0)
                odUri = spl[0];
            else
            {
                baseUri = spl[0];
                odUri = spl[1];
            }
            if (string.IsNullOrEmpty(baseUri))
                baseUri = "http://localhost/api/" + typeof(T).Name;
            var request = new HttpRequestMessage(HttpMethod.Get, baseUri + "?" + oDataUri.Replace("?", ""));
            var modelBuilder = new ODataConventionModelBuilder();
            modelBuilder.AddEntity(typeof(T));
            var edmModel = modelBuilder.GetEdmModel();
            var oDataQueryContext = new ODataQueryContext(edmModel, typeof(T));
            return new ODataQueryOptions<T>(oDataQueryContext, request);
        }
    }
}

使用示例:

var OdataStuff = ODataBuilder<CustomerIntView>.BuildOptions("$orderby=Id");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 .ashx 上手动创建 ODataQueryOptions 的相关文章

随机推荐

  • 使用 SqlCommand 返回值

    我正在尝试获取 SQL 2008 服务器上存储过程的结果集和返回值 当我在sql management studio中运行proc时 我得到结果集和返回值 但是 当我尝试获取 C 4 0 中的值时 参数的值为 null 这是我的 C 代码
  • 通过 Grails 域标准在活动光标中出现 Mongo CursorNotFound 异常

    我正在使用 Grails 2 4 4 mongo 插件 3 0 2 MongoDB 2 4 10 使用远程数据库连接 grails mongo host 11 12 13 14 A remote server IP port 27017 d
  • 如何实现Flood-fill算法?

    我正在开发一个 Paint 应用程序 其中我正在实现类似于 MS Paint 应用程序的 BucketFill 功能 我使用一些 FloodFill 算法对其进行了编码 但填充颜色过程花费了太多时间 我不太确定其背后的原因可能是由于缓存内存
  • 标签文本中的 RGB 颜色效果,tkinter python

    您好 我只是在尝试一些代码 我正在尝试更改标签内文本的颜色 如物理键盘中的 rgb 颜色效果 使用以下代码我确实改变了颜色 但我正在尝试实现的目的是改变文本每个字母的颜色 但我不知道该怎么做 下面是我写的代码 import tkinter
  • 如何使用 WiX 将交互式用户添加到本地化 Windows 中的目录?

    如何添加瑞典语交互式用户 NT INSTANS INTERAKTIV 或英文交互用户 NT AUTHORITY INTERACTIVE 或任何其他本地化用户组write程序文件夹 ACL 的权限 这个问题实际上是 我如何使用安全对象 我无法
  • 在 AWS RDS 实例之间移动数据

    我需要在两个不同的 rds 实例上的相同 mysql 数据库之间移动数百万行 我想到的方法是这样的 use data pipeline to export data from the first instance to amazon s3
  • 在 R 中对非常大的数据集(180 万行 x 270 列)进行建模

    我正在研究一个视窗8操作系统带有8 GB 内存 我有一个数据框180 万行 x 270 列我必须对其执行glm logit 任何其他分类 我尝试使用 ff 和 bigglm 包来处理数据 但我仍然面临错误的问题 Error cannot a
  • 检查我的页面是否嵌入 iframe 中

    我想测试我的页面 php 是否嵌入到 iframe 中 以便实现不同的行为 知道如何测试这个 如果有帮助的话我也在使用 jQuery 添加 我特别感兴趣是否有一种方法可以在服务器上而不是在客户端使用 Javascript 来测试它 你可以使
  • “尚未应用待处理的组合物”例外是什么意思以及如何避免?

    我有一个正在运行的应用程序 但有时 由于我未知的原因 应用程序崩溃并显示以下消息 java lang IllegalStateException 尚未应用挂起的组合 我无法在任何地方找到有关此异常发生的信息 而且我也不明白如何避免它 编辑
  • Android - 从HashMap中获取值

    我尝试在 Android 中搜索 HashMap 但出现问题 考虑这个例子 HashMap
  • 将 Android GoogleSignIn 与 GmailScopes.GMAIL_SEND (gmail api) 结合使用

    我想使用 GoogleSignIn 并使用 android 内部电子邮件地址 gmail 发送电子邮件 GoogleSignInOptions gso new GoogleSignInOptions Builder GoogleSignIn
  • 更改搜索栏中的键盘颜色和外观

    当用户点击搜索文本字段时 我想将键盘的颜色更改为黑色 我试图通过以下方式实现它UITextField textField UITextField appearance textField setKeyboardAppearance UIKe
  • jenkins中访问文件参数

    我正在从事多配置工作 回归 L1 在 Jenkins 中 其任务是运行 2 种测试 测试1和测试2 在多配置作业中 它会触发执行器作业 回归执行器 运行所选测试的脚本 这回归 L1作业被限制运行矩阵服务工作节点 而矩阵作业将在从节点中运行自
  • Python Regex - 查找html标签之间的字符串[重复]

    这个问题在这里已经有答案了 我正在尝试提取 Html 标签之间的字符串 我可以看到以前在堆栈溢出上也有人问过类似的问题 但我对 python 完全陌生 而且我很挣扎 所以如果我有 b Bold Stuff b 我想要一个正则表达式让我 Bo
  • 当我尝试向我的 S3 存储桶 (Node.js) 发送内容时 AWS 缺少凭证

    我从昨天开始就遇到这个问题 一直找不到解决方案 我正在尝试将某些内容发送到我的 S3 存储桶 但是当我尝试时 此消息出现在我的控制台中 CredentialsError Missing credentials in config messa
  • 在地图上绘制插值数据

    我有在美国切萨皮克湾不同地点采集的物种丰富度调查数据 我想以图形方式将这些数据呈现为 热图 我有一个纬度 经度坐标和丰富度值的数据框 我将其转换为SpatialPointsDataFrame并使用了autoKrige automap 包中的
  • 张量流“模块”对象没有属性“contrib”

    我使用pip方法安装了tensorflow 在python 2 7 debian linux上 如官方文档所示 https www tensorflow org versions r0 9 get started os setup html
  • aws apigateway lambda 始终返回 502

    我已经为我的代理服务器创建了 aws apigateway lambda 集成 当我向网关发出 get 请求时 请求已成功通过 lambda 函数也成功执行 并在输出流中写入响应 statusCode 为 200 但 apigateway
  • 以编程方式启动 EA

    我想通过 Windows 服务打开 EA 会话并在幕后执行一些操作 我使用 Repository API 但是不知道如何正确初始化它 EA Repository repository repository OpenFile C test e
  • 如何在 .ashx 上手动创建 ODataQueryOptions

    我想重建我的上一个项目 过去 我没有使用任何 Web API 我可以使用 ODataQueryOptions 来执行 filter orderby top skip 操作吗 对于我自己的 handler ashx 中的查询 就像是 var