Потеря данных в массиве с WCF - PullRequest
0 голосов
/ 01 августа 2011

У меня есть следующий пример кода на WCF. Я получу данные из базы данных с EF 4.0:

public IEnumerable<Row> GetRowsUrenBriefje(int urenBriefjeId)
{
    UrenregistratieEntities ue = new UrenregistratieEntities();
    IEnumerable<Row> rows = (from row in ue.Rows
                             where row.RegistrationId == urenBriefjeId
                             select row);
    return rows;
}

На стороне клиента я получил следующий код:

IEnumerable<UrenregistratieService.Row> rows = svc.GetRowsUrenBriefje(registration.IdRegistration, true);
foreach (UrenregistratieService.Row row in rows)
{
    UrenRij.Add(new UrenRij(row));
}

Когда я отлаживаю, посмотрите на значение строк, прежде чем оно вернется, содержит несколько значений.На стороне клиента я также получил несколько значений в массиве, но они не являются исключением первого значения.эта проблема также появляется в другом веб-методе.

Я надеюсь, что кто-то может мне помочь, если нужно прояснить себя, просто спросите, и я попробую.

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Предложите изменить сигнатуру метода вашего веб-сервиса для возврата либо массива, либо списка. Примерно так:

  • public List<Row> GetRowsUrenBriefje()
  • public Row[] GetRowsUrenBriefje()

Реализуйте так:

public List<Row> GetRowsUrenBriefje(int urenBriefjeId)
{
    UrenregistratieEntities ue = new UrenregistratieEntities();
    return ue.Rows.Where(r=> r.RegistrationId == urenBriefjeId).ToList();
}
0 голосов
/ 01 августа 2011

Я подозреваю, что это связано с тем, что вы возвращаете сырой IEnumerable.Можете ли вы попытаться вызвать .ToList по запросу LINQ EF, прежде чем вернуться со стороны сервера, и посмотреть, вернет ли это предсказуемо все ожидаемые вами данные?Дайте мне знать, если это произойдет, я могу подробнее рассказать о том, что может происходить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...