1
我正在使用SQL Reporting Services来创建WCF Web服务。具有实体框架的Reporting Services
我的查询是:
<Query>
<Method Name="GetADTHistory" Namespace="http://tempuri.org/">
<Parameters>
<Parameter Name="personId"><DefaultValue>7885323F-DE8D-47E5-907D-2991C838FF3E</DefaultValue></Parameter>
</Parameters>
</Method>
<SoapAction>
http://tempuri.org/IResidentServiceFrontEnd/GetADTHistory
</SoapAction>
</Query>
我实现
public List<ResidentDataTypes.Person> GetADTHistory(Guid personId)
{
using (ResidentDataTypes.MyEntities entity = new ResidentDataTypes.MyEntities())
{
var person = (from a in entity.People.Include("ResidentAdts")
where a.PersonId == personId
select a);
if (person.Count() > 0)
{
return person.ToList();
}
else
{
return new List<Person>();
}
}
}
如果有2个或更多ADT记录这工作得很好。报告服务正确地看到数据库中的所有字段。但是,如果只有1个ADT记录报告服务可以看到“人员”列,但没有ADT记录。有任何想法吗?
我已经通过SQL分析器验证了ADT的加载,并且在函数返回之前我可以在Visual Studio的监视窗口中看到对象。 – Biggle10 2010-08-26 13:49:10
然后,它可能与您的报告定义以及如何在报告结构中使用ADT记录有关。我不认为这是一个序列化的问题,但它也可能值得检查数据是否与调用服务的自定义客户端正确序列化。如果未加密,您也可以使用Fiddler这样的工具来检查从服务器收到的数据。 – orka 2010-08-26 14:12:58
当我使用WCF Test Client时,它挂在这个方法上。它适用于同一服务上的其他方法。我会考虑使用Fiddler。 – Biggle10 2010-08-26 21:31:00