2015-06-30 2 views
1

У меня есть ниже класс, который подвергается как служба OData через GET вызовЗапрос вложенного словаря в OData

class Book 
{ 
    public string Id {get; set;} 
    public string Name {get; set;} 
    public Dynamicproperties Dictionary<string,object> {get; set;} 
} 

Предположит, объект книги содержит ниже данных

new Book 
{ 
    Id="1", 
    Name = "oData", 
    new Dictioanry<string,object> 
    { 
     { "chapter1", 
     new Dictionary<string,object> 
     { 
      "page1", 
      new Dictionary<string,object> 
      { 
       "topic", "introduction" 
      } 
     } 
     } 
    } 
} 

Я мог бы понять пользователь может запрашивать свойства Книги, такие как http://localhost:1234/Books('1')/Name и для поддержки этот запрос мне нужно иметь геттеры для этих свойств внутри моего BookController. Но как пользователь может запрашивать свойства внутри вложенного словаря. Предположим, хочет ли пользователь знать значение в разделе страницы 1 главы 1, как пользователь может его запросить? Что мне делать для поддержки этого запроса? Я не могу понять это. Буду признателен за любую помощь.

ответ

0

Я думаю, что вложенный словарь теперь не поддерживается в OData API-интерфейсов Web. Фактически,

публичный словарь Dynamicproperties {get; set;}

- это контейнер для хранения динамических свойств. В настоящее время динамические свойства могут быть одним из структурных свойств, определенных в OData.

Как OData spec говорит:

4,3 Структурные свойства

Структурное свойство является свойством (структурного типа), который имеет один из следующих типов:

· Примитивный тип

· Комплексный тип

· Тип перечисления

· Сборник одного из вышеуказанных

Надеюсь, это поможет. Благодарю.

Смежные вопросы