我的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));
}
当我在返回之前调试行值时,包含多个值。在客户端,我也得到了数组中的多个值,但它们不是第一个值。这个问题也出现在另一个网络方法中。
我希望有人可以帮助我,如果需要澄清自己只是问我会尝试。
答案 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();
}