IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

utilisation de WCF data service sans Linq ?


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Par défaut utilisation de WCF data service sans Linq ?
    bonjour,

    avec la contrainte de ne pas utiliser Link to sql j'ai suivie ce tutoriel
    http://www.pierrickmartos.fr/post/Si...-Services.aspx
    mais il y a une requête Linq! comment pourrais je adapter ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    NorthwindEntities entities = new NorthwindEntities(new Uri("WebDataService1.svc", UriKind.Relative));
     
                var query = (from o in entities.Orders
     
     
                             select o) as DataServiceQuery<Orders>;
     
                query.BeginExecute(new AsyncCallback(a =>
     
     
                 {
     
     
                     IEnumerable<Orders> orders = query.EndExecute(a);
     
     
                     ListBoxOrders.ItemsSource = orders;
     
     
                 }), null);
    et écrire une requête sql , où dois je faire autre chose lors de l'appel de mon service dans silverlight ?

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pourquoi tu ne veux pas écrire de LINQ ?

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Par défaut
    (: c'est pas moi qui ne veux pas (on démarre un nouveau projet) et on essaye de parcourir ttes les possibilités

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par technosmile Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    NorthwindEntities entities = new NorthwindEntities(new Uri("WebDataService1.svc", UriKind.Relative));
     
                var query = (from o in entities.Orders
     
     
                             select o) as DataServiceQuery<Orders>;
     
                query.BeginExecute(new AsyncCallback(a =>
     
     
                 {
     
     
                     IEnumerable<Orders> orders = query.EndExecute(a);
     
     
                     ListBoxOrders.ItemsSource = orders;
     
     
                 }), null);
    Pour infos le code ci-dessus n'est pas du Linq To SQL mais du Linq To Entites (ou Objects).

    Pour ce qui est de faire du SQL côté client avec WCF Data Services cela est impossible.

    La communication avec ton service de données se fait avec des requêtes HTTP (POST, PUT, DELETE, MERGE). WCF Data Services fournit des bibliothèques clientes qui te permettent de ne pas avoir à générer manuellement ces requêtes HTTP. Ainsi tu crées ta requête en Linq (ce n'est pas du Linq To SQL) et la bibliothèque cliente se chargera de traduire en requête HTTP.

    Si tu ne veux toujours pas utiliser la méthode qui t'est offerte par la bibliothèque cliente .Net rien ne t'empêche de générer manuellement tes requêtes HTTP et ensuite de sérialiser et dé sérialiser les flux que tu voudras respectivement envoyer ou recevoir.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Encore moi,
    pour la requête la ligne de code suivante :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var query = (from o in entities.Orders
                      select o) as DataServiceQuery<Orders>;
    peut être remplacée par
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var query = entities.Orders;

    si tu as des options d'opérations système à ajouter telles que $filter, $expand, $orderby etc... tu peux utiliser la méthode AddQueryOption. Ainsi si tu veux ajouter l'opération système $orderby tu feras le code suivant :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var query = entities.Orders.AddQueryOption("$orderby, "TaProprieté desc");
    Le problème avec cette méthode est qu'on ne pas utiliser la projection autrement dit l'opération système $select ne peut être utiliser alors qu'en Linq tu peux.

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 55
    Par défaut
    merci j'y vois plis clair mnt
    je vais me mettre à Entity framework !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de WCF Data Services 1.5 avec Silverlight
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 26/03/2010, 20h01
  2. Présentation des nouveautés de WCF Data Services 1.5
    Par Jean-Michel Ormes dans le forum Contribuez
    Réponses: 3
    Dernier message: 21/01/2010, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo