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

Entity Framework Discussion :

Entity framework + Wcf [Débutant(e)]


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Entity framework + Wcf
    Bonjour à tous,

    Cela pas mal de temps que je bloque sur un problème et malgré mes recherches, je n'arrive pas à le résoudre.

    J'ai une architecture ci-après :
    une DAL
    une BLL
    une Couche de WCF,
    puis un client léger (Application ASP) qui consommera les services.

    J'ai une classe "Personne" (générée depuis l'edm) ainsi définie :
    avec trois propriétés (IdPersonne, nom et prénom)
    et une ICollection<Vetement>

    La classe "Vetement" a deux propriétés :
    IdPersonne et couleur.


    au niveau de la persistance, j'ai en base :
    Table Personne :
    IdPersonne : 1
    Nom : Jules
    Prenom : César

    Table Vetement :
    IdPersonne : 1 avec Couleur = bleu,
    IdPersonne : 2 avec couleur = rouge.

    Mes classes sont bien décorées avec les annotations [DataContract] et [DataMember].
    Mon service a bien les décorations [ServiceContract] et [OperationContract]
    Dans la DAL, j'ai mis context.Configuration.LazyLoadingEnabled à "false", ainsi que context.Configuration.ProxyCreationEnabled à "false". (J'ai lu pas mal d'articles mentionnant que leur état à "true" ne permet pas le bon fonctionnement du service.


    J'ai un service Wcf qui retourne une personne (la requete est faite au niveau de la DAL)
    Au niveau de l'application Web ASP, je crée une instance du service, que je nomme proxy.

    Mon problème :

    J'ai deux cas de figure :
    1) Je définis la requête ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var query = from p in context.Personnes where p.IdPersonne == 1 select p
    >>>> le wcf récupère bien mon objet Personne (Jules Cesar) puis mon proxy récupère bien l'objet MAIS avec une liste VIDE d'objets Vetement.

    2) Je définis la requête ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var query = from p in context.Personnes.Include("Vetement") where p.IdPersonne == 1 select p
    >>>> Dans ce cas, dans ma couche Wcf, l'objet est encore bien construit. (avec sa collection de vêtement). Mais, au niveau client, cela crée un problème :
    Une erreur s'est produite lors de la réception HTTP...La raison peut en être que la liaison du point de terminaison de service n'utilise pas le protocole HTTP. Cela peut egalement être dû au fait qu'un contexte de demande http a été ignoré par le serveur....
    J'ai fouiné de partout, sans succès.
    J'ai regardé ici aussi : http://www.developpez.net/forums/d96...ity-generator/

    J'ai le sentiment que c'est le même problème. Mais, étant novice, je n'ai pas réussi à tout comprendre.

    Pourriez-vous, svp, m'aider à cerner le problème ?
    Merci bien

  2. #2
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Je peux me tromper mais n'y aurait-il pas intérêt à avoir un second "personne" avec l'ID 2 qui est référencé dans ta table vêtements ?
    Je ne sais pas si linq tente de repérer la cohérence de la liaison avant d'effectuer la requête ... mais ça ne coûte rien d'essayer ...

    @+
    Frédéric

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Citation Envoyé par SIC83 Voir le message
    Je peux me tromper mais n'y aurait-il pas intérêt à avoir un second "personne" avec l'ID 2 qui est référencé dans ta table vêtements ?
    Je ne sais pas si linq tente de repérer la cohérence de la liaison avant d'effectuer la requête ... mais ça ne coûte rien d'essayer ...

    @+
    Frédéric
    Bonjour,

    Merci de ta réponse.
    J'ai donné "sommairement" l'exemple unique de Jules CESAR, mais à vrai dire, mes tables réelles comportent plus de 50 000 enregistrements.
    De manière un peu plus détaillée, mon service Wcf propose plusieurs [OperationContract] :
    ---récupération du Prenom d'une personne. (type de retour renvoyé par le Wcf : string
    ---récupération d'une personne : type de retour renvoyé par le Wcf : Personne
    En apparence, mon proxy arrive à récupérer de mon Service Wcf des objets de types "primitifs" (du genre "int", "string"...) OU des objets de ma constructions (Personne) dont la requete n'avait pas de "Include".
    Le fait de requêter avec un "Include" me retourne effectivement l'objet "Jule CESAR" avec sa collection de Vetement, MAIS au niveau du proxy, ca bloque...

    J'ai vu sur un autre post qu'il pouvait y avoir un problème de "taille" dans le fichier de configuration. Les propriétés telles que "MaxReceiveMessage" ou autres. J'ai réhaussé ces propriétés. Rien n'y fait...

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Dans le 1er cas, et certainement car tu es en lazyloading, c'est normal que tu n'aies pas les objets "vêtements" au moment où tu les attends.
    Je te conseille un coup d'oeil ici.

    Dans le 2nd cas, là tu charges délibérément les "vêtements" avec le Include, donc pas de problème, ils sont bien chargés.
    Par contre, tu as un problème ailleurs dans ton code. Sans le détail de celui-ci, je ne saurai t'en dire davantage.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Dans le 1er cas, et certainement car tu es en lazyloading, c'est normal que tu n'aies pas les objets "vêtements" au moment où tu les attends.
    Je te conseille un coup d'oeil ici.

    Dans le 2nd cas, là tu charges délibérément les "vêtements" avec le Include, donc pas de problème, ils sont bien chargés.
    Par contre, tu as un problème ailleurs dans ton code. Sans le détail de celui-ci, je ne saurai t'en dire davantage.
    Désolé pour ma réponse tardive.

    Je me suis beaucoup documenté ces derniers jours et compris mon erreur.
    Plusieurs erreurs dans le cadre de fonctionnement d'un Service étaient liées dans ma solution.

    Merci en tout cas pour ta proposition de "débugage"...
    A++

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

Discussions similaires

  1. Architecture : Silverlight - WCF - Entity Framework
    Par darkfrag dans le forum Silverlight
    Réponses: 6
    Dernier message: 02/12/2009, 17h52
  2. Pertes de binding via Entity Framework + WPF +WCF
    Par GTSLASH dans le forum Services Web
    Réponses: 4
    Dernier message: 12/08/2009, 10h17
  3. WCF, Entity Framework et problème de chaîne de connexion
    Par mike1808 dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 10/10/2008, 09h34

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