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

C# Discussion :

Architecture N-Tiers et modèle ADO.net


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par défaut Architecture N-Tiers et modèle ADO.net
    Bonjour, étant étudiant en licence professionnelle en réseau et informatique, j'ai des cours de Framework .Net.

    Nous devons effectuer une application qui utilise l'architecture N-tiers ( présentation, business, data et entity). Les contraintes nous demande d'utiliser un ADO.net dans la couche data pour les procédure stocké et un autre ADO.net dans la couche entity pour les objets(tables).

    J'ai donc 2 ADO.NET, cependant je ne peut pas effectuer un appel de procédure (La référence d'objet n'est pas définie à une instance d'un objet.) dans la couche data. Alors que dans un projet sans archi N-tiers cela fonctionne.

    Pouvez vous m'aider ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Salut,

    A la ligne 32, ton objet n'est pas instancié...

    Plus sérieusement, sans le code où se produit l'erreur ça va être un peu compliqué de t'aider

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Citation Envoyé par Esenor Voir le message
    La référence d'objet n'est pas définie à une instance d'un objet.
    Ca c'est le message que tu obtiens quand ta variable est a null

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par défaut
    Merci de vos réponses.

    Voici une partie de mon code (les noms sont provisoire,c'est un projet de test) :

    Couche Data :

    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
     
    namespace data
    {
        public class Connexion
        {
            private Cave_VinsEntities cave;
     
            public Connexion()
            {
                cave = new Cave_VinsEntities();
            }
     
            public List<string> GetCLR() { return cave.SelectCouleur().ToList<string>(); }
        }
    }
    La couche business :

    c'est cette partie qui pose problème. (les références sont réalisé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                data.ConnexionuneConnexion = new data.Connexion();
                List<string> laListe = uneConnexion.GetCLR();

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    BOnjour à tous,

    Deux questions, dont une qui n'a rien avoir avec la question Tu es de quel ville ? Petite question pour savoir si tu n'es pas de Amiens tu peux répondre oui ou non.

    La question + sérieuse c'est quand tu fais le GetCLR() je suppose donc ta fonction .SelectCouleur() doit avoir une référence null. Si tu peux fait voir ta couche Entity.
    Et pour que se soit plus facile a debugger pour toi utilise le debugger

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par défaut
    Bonjour Morgand, oui je suis d'Amiens , tu doit sans doute connaitre l’établissement.

    Ma fonction SelectCouleur() est une procédure stocké.

    J'ai utilisé dans mon fichier .edmx l'importation de fonction.

    Mais, cela fonctionne parfaitement dans une couche seule (projet sans N-tiers).
    Cependant cela ne marche pas si je veux communiquer entre deux couches (projet N-tiers).

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Par défaut
    Esssaie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var laListe = new data.Connexion().GetCLR();

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Par défaut
    Bonjour, j'ai avancé dans mon problème, il me manquait un app.config dans les autres couches.
    Cependant, il me reste un autre problème avec le model ADO.net.

    J'ai donc 2 model ado.net, un dans la couche DATA pour les procédure stocké et un dans la couche entity pour les vues et tables. Mais quand j'appel une procédure stocké, je ne peut récupérer en liste d'entité. Seulement en scalaire.

    Avez vous une idée? (Aucun code pour l'instant)

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Es tu en version 4.0 ?
    Via la page de configuration de l'EDMX tu peux faire un UPDATE de ton model via ta base de donnée. Là tu importe les procédure stockées. Ensuite tu vas dans le "Model Browse" (pour l'avoir tu fais clicque droit sur le diagram EDMX), Function Imports, et tu double clique sur chaque fonction. Tu auras une fenêtre qui va s'afficher, "Edit Function Import", et là tu pourras choisir entre "Scalars", "Complex" et "Entities".

    Oui je suis un ancien de cette licence pro , je te MP.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/03/2010, 11h24
  2. [N-Tier] Architecture n-tiers .net
    Par Bal1n dans le forum Autres
    Réponses: 12
    Dernier message: 26/12/2007, 12h42
  3. Réponses: 9
    Dernier message: 02/07/2007, 13h29
  4. [VB.NET]Besoin de précision pour architecture 3-tiers
    Par Dnx dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/09/2005, 09h09
  5. [VB.NET] Architecture n-tiers
    Par Dnx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/02/2005, 19h10

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