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 :

Utilisation de Plusieurs Schema [Débutant]


Sujet :

Entity Framework

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Utilisation de Plusieurs Schema
    Je me doute que la question à déjà du être traité, mais est-il possible d'affecter une entity à un schema en particulier ?
    J'utilise EF6 en DBFirst.

    Cordialement

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,
    Qu'entendez vous par une entity? Voulez dire "ajouter une entité à un schéma"? Si telle est la question, la réponse est oui?

    Cordialement.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Et comme faites vous pour définir le schéma de l'entité en DBFirst ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bon je ne sais pas quelle architecture vous utilisez. Si vous utilisez une architecture de type n-tier:
    -Vous ajoutez un nouvel élément de type ADO Entity Data Model dans la DAL.

    Si c'est un projet à couche unique vous ajoutez l'élément ADO Entity Data Model à votre projet.

    Voici les étapes en images jointes dans l'ordre de progression.

    Cordialement.
    Images attachées Images attachées    
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  5. #5
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Je ne suis pas sûr que vous répondiez à sa question.

    rvzip64 vous parlez de mapper des table dont le schéma est différent de dbo dans l'edmx?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  6. #6
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Salut iberserk,

    C'est exactement ce que je cherche à faire ! Vous avez une piste ?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    J'ai du mal a comprendre ton problème.
    Car voici ce que j'ai essayé :
    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
    USE [TestSchema]
    GO
    CREATE SCHEMA [abc]
    GO
     
    CREATE TABLE [dbo].[Customers]
    (
    	CustomerId	INTEGER		NOT NULL PRIMARY KEY,
    	Nom			VARCHAR(50) NOT NULL,
    )
     
    CREATE TABLE [abc].[Clients]
    (
    	ClientId	INTEGER		NOT NULL PRIMARY KEY,
    	Nom			VARCHAR(50) NOT NULL,
    )
    Et je n'ai aucun problème pour l'intégrer dans mon edmx :
    Nom : ef_dbFirst.jpg
Affichages : 323
Taille : 38,1 Ko

    Donc si tu pouvais nous donner un peu plus de précisions

  8. #8
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Ma question se pose au niveau du Designer pas du code SQL...

  9. #9
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    J'avais bien compris mais ma démonstration servait d'exemple...

    Mon image (de mon message précédent) est dans le designer Visual Studio et il m'a fallu 10 secondes pour ajouter une table qui n'est pas dans le schéma "dbo".
    Nom : ef_dbFirst.jpg
Affichages : 311
Taille : 27,2 Ko

    Mais je repose ma question :
    Quel est ton problème ???

  10. #10
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Le problème c'est que vous , vous importez votre base de données qui comporte déjà deux schémas.

    Alors que moi je vous demande comment faire pour spécifier dans le designer un schéma spécifique pour une entité.

    De plus, je pense que si vous générez votre script SQL a partir du designer vous aurez perdu l'appairage entité/Schéma ...

  11. #11
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    D'après ton premier message tu es en "DbFrist" : Ce qui veut dire que ta base de données est crées et que tu l'importe dans Visual studio. ==> Voila pourquoi j'importe ma Bdd.
    Donc en DbFirst il n'y a pas a modifier le schéma dans Visual studio puisque cela est géré en SQL.

    Par contre en "Code First" tu peux configurer tes schéma pour la génération de base ou pour te relier à des tables existante.

    Dans ta classe Context :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Customer>().ToTable("Customers");
        modelBuilder.Entity<Client>().ToTable("Client", schemaName: "abc");
    }
    Ou par attribut sur tes classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Table("Clients", Schema = "abc")]
    public class Client
    {
        ...
    }
    En faites je pense qu'on a du mal a se comprendre sur les mots.

    Mais on va y arriver

  12. #12
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    En faite je pense avoir compris !

    Tu es en "Model First" : Tu crée ton schéma dans le designer pour pouvoir créer ta base ensuite...
    C'est ça ?


    Si c'est bien ça je n'ai pas de solution car dans le deisgner il n'y pas pas de propriété pour choisir sont schéma au niveau de l'entité mais bien du Model...

    En mode arrache : Créer plusieurs "entity data Model" ou chacun aura un Schéma différents...
    (mais tu perd tes relations avec EF il faudra faire des "join" a la main dans Linq)

  13. #13
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    lol oui on a du mal à ce comprendre

    Je comprends complètement votre exemple, je vais faire un résumé d’après ce que vous m'avez expliqué et de ce que j'ai pu lire.

    3 façons de faire avec EntityFrameWork


    Db First
    Si la base de données existe déjà, on fait un import dans l'EF pour construire la DAL. La gestion des schémas est évidente vu que c'est dans le serveur de base de données

    Code First
    Si la base de données n'existent pas, on code en C# puis on injecte le modèle dans SQLServer, et d'aprés votre dernier post, il est facile de faire la distinction entre les schémas

    Design First
    Si la base de données n'existent pas, on fait un design, puis on génére le SQL pour l'injecter dans le Serveur. C'est la méthode que j'ai choisi (c'est peut être une erreur) et je ne sais pas comment spécifier le schéma dans le designer, sachant que je veux pouvoir gérer plusieurs schémas

    Mon problème se pose avec le design First.

  14. #14
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    En faite je pense avoir compris !

    Tu es en "Model First" : Tu crée ton schéma dans le designer pour pouvoir créer ta base ensuite...
    C'est ça ?


    Si c'est bien ça je n'ai pas de solution...
    Exactement !


    katkiller, vous utilisez habituellement qu'elle méthode pour faire votre DAL et modéliser votre DB ?
    DbFirst ? CodeFirst ?

    Qu'est ce qui a justifié votre choix ?

  15. #15
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    (mais tu perd tes relations avec EF il faudra faire des "join" a la main dans Linq)
    Un peu embêtant en effet ...

  16. #16
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Quand j'ai commencé mon apprentissage d'EF, je voulais absolument faire du "ModelFirst" (DesignFirst). Mais j'ai rencontré beaucoup de problèmes avec la génération de la Bdd. En gros je n'ai presque jamais réussi a mettre ma base de données a jour sans la supprimer...

    Aujourd'hui je suis 100% "Code First" (base existante ou non) :

    Je garde la maîtrise de mes classes, de mon context (mapping entre mes entités et ma Bdd).
    Cela me permet d'avoir une classe qui représente mon métier plutôt que ma Bdd.

    Pour la mise à jour de ma base : Code First Migration.
    Avec cette méthode il y aussi l'avantage de pouvoir remettre à jour ta bdd à un point initial --> méthode "Seed" dans le lien ci-dessus.

    J'utilise aussi les BoundedContext qui me permettent de cloisonner mes entités selon mon besoin. Cette technique m'évite d'avoir 200 entités dans mon modèle alors que dans mon context métier(besoin) j'ai besoin que de 5 entités.

    L'avantage de "DbFirst" c'est que tu contrôle totalement ton SQL. Et grâce à l'import cela te permet de mettre en place un Schéma (modèle d'entités) rapidement. Mais je pense que dans ce type d'approche il faut vraiment gérer la base coté SQL et juste mettre à jour ton modèle coté Visual studio.

    Mes explications sont totalement personnelle et mériteraient certainement d'être davantage développées.
    Si j'ai un peu de temps j’essaierai de faire quelque chose de mieux... En attendant si tu as des questions n'hésite pas !

  17. #17
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Merci pour toutes ces informations

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

Discussions similaires

  1. [Servlet] Utilisation de plusieurs classes
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2005, 09h43
  2. Application utilisable avec plusieurs SGBD - ADO ou DBX ?
    Par RamDevTeam dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 08h25
  3. [DB2] requete sur plusieurs schema
    Par xjnoel dans le forum DB2
    Réponses: 1
    Dernier message: 22/11/2004, 12h39
  4. [STRUTS] utilisation de plusieurs tags <html:subm
    Par Super Castor dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/06/2004, 11h42
  5. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04

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