OData(创建自定义)查询选项
OData (create custom) query option
我需要创建一个自定义查询选项,老实说,我不知道从哪里开始。我不知道它们是如何创建的,也不知道 class 是如何处理它们的。
在我的项目中,我使用了 markdown,但我还需要启用(在这种情况下,标记的文本将是 markdown)或禁用(在这种情况下,我将使用纯文本)。
此时我的解决方案是向函数发送一个参数并告诉它何时启用/禁用
例如:
.../.../Namespace.MyFunction(markdown=1)
但我正在寻找一种方法来获得这个
.../.../...?$markdown=true
类似于计数查询选项。
谢谢
美元符号前缀只能与系统查询选项一起使用。将 $
视为保留名称空间。您当然可以使用自己的特定于应用程序的查询选项;只是不要在它们前面加上 $
.
要从控制器方法中的 http://host/path?markdown=true
等请求 URI 获取 markdown
的值,请使用 GetQueryNameValuePairs
extension method. See also How to access all querystring parameters as a dictionary.
由于您使用的是 ASP.NET,您也可以只使用常规的 parameter binding。
例如,具有以下原型的 ODataController
操作方法:
[EnableQuery]
public IQueryable<MyEntity> Get(string testParam = "")
将在以下时间处理请求 URL:
http://your.machine/api/odata/myentity?$count=true&$top=10&$skip=0&testParam=true
OData 参数 $count
、$top
和 $skip
都将得到尊重,您的自定义 testParam
将在其中分配字符串 "true"
Get
方法。
我需要创建一个自定义查询选项,老实说,我不知道从哪里开始。我不知道它们是如何创建的,也不知道 class 是如何处理它们的。 在我的项目中,我使用了 markdown,但我还需要启用(在这种情况下,标记的文本将是 markdown)或禁用(在这种情况下,我将使用纯文本)。
此时我的解决方案是向函数发送一个参数并告诉它何时启用/禁用
例如:
.../.../Namespace.MyFunction(markdown=1)
但我正在寻找一种方法来获得这个
.../.../...?$markdown=true
类似于计数查询选项。
谢谢
美元符号前缀只能与系统查询选项一起使用。将 $
视为保留名称空间。您当然可以使用自己的特定于应用程序的查询选项;只是不要在它们前面加上 $
.
要从控制器方法中的 http://host/path?markdown=true
等请求 URI 获取 markdown
的值,请使用 GetQueryNameValuePairs
extension method. See also How to access all querystring parameters as a dictionary.
由于您使用的是 ASP.NET,您也可以只使用常规的 parameter binding。
例如,具有以下原型的 ODataController
操作方法:
[EnableQuery]
public IQueryable<MyEntity> Get(string testParam = "")
将在以下时间处理请求 URL:
http://your.machine/api/odata/myentity?$count=true&$top=10&$skip=0&testParam=true
OData 参数 $count
、$top
和 $skip
都将得到尊重,您的自定义 testParam
将在其中分配字符串 "true"
Get
方法。