在Odata中查询嵌套字典
本文关键字:嵌套 字典 查询 Odata | 更新日期: 2023-09-27 18:00:27
我有下面的类,它通过GET调用公开为oData服务
class Book
{
public string Id {get; set;}
public string Name {get; set;}
public Dynamicproperties Dictionary<string,object> {get; set;}
}
假设Book的对象包含以下数据
new Book
{
Id="1",
Name = "oData",
new Dictioanry<string,object>
{
{ "chapter1",
new Dictionary<string,object>
{
"page1",
new Dictionary<string,object>
{
"topic", "introduction"
}
}
}
}
}
我可以理解用户可以像那样查询Book的属性http://localhost:1234/Books('1')/Name并支持在这个查询中,我需要在BooksController中为这些属性设置getter。但是用户如何查询嵌套字典中的属性呢。假设用户想知道的值第1章第1页的主题,用户如何查询?。我应该做些什么来支持该查询?。我想不通。如果有任何帮助,我将不胜感激。
我认为Web API OData现在不支持嵌套字典。实际上,
公共字典动态属性{get;set;}
是一个容纳动态属性的容器。目前,动态特性可以是OData中定义的结构特性之一。
正如OData规范所说:
4.3结构特性
结构属性是具有以下类型之一的(结构类型的)属性:
·原始类型
·复杂型
·枚举类型
·上述之一的集合
希望能有所帮助。谢谢