Meilleur auteur de réponses
Comment appeler les entités via WCF data service

Question
-
Bonjour,
je travaille avec Silverlight et je dois développer la couche d'accès à la BD, pour cela j'ai opté pour Entity Framework et Wcf Data Service.
en faisant référence au wcf dataservice j'arrive à voir mes tables et exécuter des requêtes linq. Par contre, je n'arrive pas à voir les entités issues du mapping (class générées dans le edmx) ! y'a t-il moyen de les appeler ? surtout que je veux ajouter de nouvelles fonctions à ces entités et les appeler à partir de mon appli silverlight.
Réponses
-
Bonjour SafWork,
Oui cela est normal, car le proxy doit être mis à jour. Dans le projet client, à l'endroit où se trouve la référence de service ajoutée au projet, il faut faire un click droit et selectionner la mise à jour du proxy.
Voila, c'est tout ;)
Jérémy Jeanson MVP, MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)- Proposé comme réponse JeremyJeansonMVP, Moderator vendredi 22 juillet 2011 08:15
- Marqué comme réponse Ciprian Duduiala jeudi 22 septembre 2011 07:04
Toutes les réponses
-
je reviens sur mon souci, dans le wcf Data service j'ai ajouté la ligne:
config.SetServiceOperationAccessRule(
"*", ServiceOperationRights.All);
et j'ai actualisé le référence web.
maintenant j'arrive à voir mes entités. mais j'ai un autre souci, j'arrive à voir juste les champs/propriétés crées initialement et non pas celles que j'ai ajouté.
est ce normal ?
-
Bonjour SafWork,
Oui cela est normal, car le proxy doit être mis à jour. Dans le projet client, à l'endroit où se trouve la référence de service ajoutée au projet, il faut faire un click droit et selectionner la mise à jour du proxy.
Voila, c'est tout ;)
Jérémy Jeanson MVP, MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)- Proposé comme réponse JeremyJeansonMVP, Moderator vendredi 22 juillet 2011 08:15
- Marqué comme réponse Ciprian Duduiala jeudi 22 septembre 2011 07:04
-
Merci Jérémy pour ta réponse, mon souci était plutot comment consommer les nouvelles fonctions que j'ai ajouté à ma class partial Usager générée dans le edmx.
Voila la fonction qui marche :
public void GetUsagers(System.Windows.Controls.DataGrid dt) { DataServiceQuery<Usager> userQuery = (DataServiceQuery<Usager>)proxy.CreateQuery<Usager>("GetListUsager"); try { userQuery.BeginExecute( (result) => { var userlist = new DataServiceCollection<Usager>(userQuery.EndExecute(result)); dt.ItemsSource = userlist.ToList(); }, null); } catch (DataServiceQueryException ex) { throw ex; } }
Usager est ma class partialGetListUsager est la nouvelle fonction que j'ai ajouté : elle renvoie une collection de type Usager
le problème maintenant si je fais le même appel pour une fonction qui renvoie cette fois ci une collection de type string, je reçois une exception:
Voici ma fonction :
public void GetCivilites(System.Windows.Controls.ComboBox cmbCivilite) { DataServiceQuery<String> userQuery = (DataServiceQuery<String>)proxy.CreateQuery<String>("GetCivilite"); try { userQuery.BeginExecute( (result) => { var userlist = new DataServiceCollection<string>(userQuery.EndExecute(result)); cmbCivilite.ItemsSource = userlist.ToList(); }, null); } catch (DataServiceQueryException ex) { throw ex; } }
à l'exécution, il pointe sur la ligne
var userlist = new DataServiceCollection<string>(userQuery.EndExecute(result));
avec l'exception:
L'exception System.InvalidOperationException n'a pas été gérée par le code utilisateur
Message=Erreur lors du traitement du flux de réponse. L'élément XML contient un contenu mixte.
StackTrace:je suis perdue, l'erreur n'est pas significative pour moi !
Pourriez vous m'aider !!!!