J'utilise les services de génération de rapports SQL pour accéder à un service Web WCF.Reporting Services avec Entity Framework
Ma requête est:
<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>
Ma mise en œuvre est
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>();
}
}
}
Cela fonctionne bien s'il y a 2 ou plusieurs enregistrements ADT. Les services de génération de rapports voient correctement tous les champs de la base de données. Cependant, s'il n'y a qu'un seul service d'enregistrement d'enregistrements ADT, les colonnes "Personne" ne figurent pas dans les enregistrements ADT. Des idées?
J'ai vérifié que les ADTs se chargent via le profileur SQL et que je peux voir les objets dans une fenêtre de surveillance de Visual Studio avant que la fonction retourne. – Biggle10
Ensuite, cela peut être lié à la définition de votre rapport et à l'utilisation des enregistrements ADT dans les structures de rapport. Je ne pense pas que ce soit un problème de sérialisation mais il peut également être utile de vérifier si les données sérialisées correctement avec un client personnalisé qui appelle les services. Vous pouvez également utiliser un outil tel que Fiddler pour vérifier les données reçues du serveur si elles ne sont pas cryptées. – orka
Lorsque j'utilise le client de test WCF, il dépend de cette méthode. Cela fonctionne pour d'autres méthodes sur le même service. Je vais chercher à utiliser Fiddler. – Biggle10