使用WCF丢失数组中的数据

时间:2011-08-01 13:46:00

标签: arrays wcf entity-framework-4

我的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 :(得分:0)

我怀疑这与您返回原始IEnumerable的事实有关。你可以尝试在从服务器端返回LINQ EF查询之前调用.ToList,看看是否可预测地返回你期望的所有数据?如果有,请告诉我,我可以详细了解可能发生的事情。

答案 1 :(得分:0)

建议更改Web服务的方法签名以返回数组或列表。像这样:

  • 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();
}