2015-06-29 1 views
0

У меня есть JSON, который выглядит следующим образом:Как правильно смоделировать метаданные для объекта с массивом сущностей?

{ 
username: 'johnDoe', 
password: 'mypassword' 
answers: [ 
    { 
    field: '1', 
    value: 'field1 value'   
    }, 
    { 
    field: '2', 
    value: 'field2 value' 
    } 
] 
} 

Я пытаюсь сделать объект для него. Я пошел с этой организацией:

function addUser() { 
      addType({ 
       name: 'User', 
       dataProperties: { 
        "id": {nullOk: true, isPartOfKey: true}, 
        username: {max: 255, nullOk: true}, 
        password: {max: 255, nullOk: false} 
       }, 
       navigationProperties: { 
        answers: { 
         entityTypeName: 'Answer', 
         hasMany: true 
        } 
       } 
      }); 
     } 

     function addAnswer() { 
      addType({ 
       name: 'Answer', 
       dataProperties: { 
        field: {type: INT, isPartOfKey: true}, 
        value: {max: 255, nullOk: true} 
       } 
      }); 
     } 

Проблема заключается в том, всякий раз, когда я делаю manager.saveChanges() ветер отсекает массив answers из JSON, поэтому только имя пользователя и пароль получает передается на запрос моей POST .. почему это ? Я хочу передать весь объект, включая массив ответов. Какие значения следует изменить, чтобы заставить его пройти?

+0

Можете ли вы дать ответ свойство 'userId', чтобы он мог указать на пользователя, которому он принадлежит? –

ответ

0

У вас есть несколько проблем моделирования:

  • нет ключа для User
  • не внешнего ключа, связанного Answer с User
  • большой вероятности, что Answer на самом деле не EntityType

Субъекта должен иметь ключ, не подлежащий обнулению с уникальными значениями.

Каков истинный ключ, не подлежащий обнулению, для вашего типа User? Это не может быть id, потому что в JSON нет данных «id». Как может userName быть нулевым ... и password не может быть недействительным?

Как отмечает @SteveSchmitt, вы не видите Answer экземпляров в вашем User.answers, потому что нет никакого внешнего ключа (например, userId относящихся Answer к User.

Хотя Answer типа объекта действительно есть ненулевой ключ, field, что это странное имя для ключа. это уникальное по все Answer случаям или просто среди Answer объектов в пределах заданного User?

Я подозреваю, что Answer на самом деле не тип сущности. Я также подозреваю, что данные Answer действительно находятся в пределах данных User и не сохраняются в отдельной структуре базы данных. Если я прав, вы, вероятно, захотите моделировать Answer как Complex Type и User.answers как массив таких типов.

Вернитесь с некоторыми ответами на мои вопросы, и мы увидим, как это приведет нас.

Благодарим за подачу бриза.

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