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 :

ROWLOCK en LinqtoEntities


Sujet :

Entity Framework

  1. #1
    Membre averti Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Points : 341
    Points
    341
    Par défaut ROWLOCK en LinqtoEntities
    Bonjour a tous ,
    SVP , y a t-il un moyen de faire ca en LinqtoEntities ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE
    Employees WITH (ROWLOCK)
    SET Title='Test'
    merci d'avance

  2. #2
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    Je suis dans le même cas de figure. Avez-vous trouvé une solution ?

    Merci d'avance

  3. #3
    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
    Créez la procédure stockée correspondante et appelez là avec LINQ...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  4. #4
    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
    Utiliser LINQ (SQL ou ENTITIES) est une catastrophe pour ce genre de requêtes: en effet vous seriez obligé de charger tout vos utilisateurs.... puis un à un modifier leur titre et enfin faire un submit changes qui fera autant d'UPDATE que d'utilisateurs...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu n'est pas obliger de créer une procédure stockée et faire l'importation de cela :
    tu peux passer par ça :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    context.ExecuteStoreQuery<Employee>("UPDATE Employees WITH (ROWLOCK) SET Title='Test'");

    ou

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    context.ExecuteStoreQuery<Employee>("UPDATE Employees WITH (ROWLOCK) SET Title='Test'");

    Bon je sais à l'avance que la création d'une procédure stockée est souhaitable mais des fois les DBA ne veulent pas qu'on leur donne des décisions comme :
    Je veux que tu me fasses une procédure qui m'exécute ça et ça.
    Certains DBA considèrent cela comme un ordre

  6. #6
    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
    tu peux passer par ça :

    Code C# :

    context.ExecuteStoreQuery<Employee>("UPDATE Employees WITH (ROWLOCK) SET Title='Test'");

    ou


    Code C# :

    context.ExecuteStoreQuery<Employee>("UPDATE Employees WITH (ROWLOCK) SET Title='Test'");
    Le choix est dur à faire entre les deux en effet
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Le choix est dur à faire entre les deux en effet
    Nom de Dieu, ils'agit de la même requête

    La deuxième devait être :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    context.ExecuteStoreQuery<Employee>("UPDATE Employees WITH (ROWLOCK) SET Title= @p0", new SqlParameter { ParameterName = "p0", Value = "Test" });

    ça montre la possibilité d'utiliser les SqlParameter et se prémunir de l'injection SQL.

  8. #8
    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
    8 fois sur 10 il n'y a pas de DBA... c'est aussi le problème on est souvent à l'encontre de la solution idéale basée sur l'approche de base de données massives.
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  9. #9
    Membre averti Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Points : 341
    Points
    341
    Par défaut
    bonjour a tous,
    pour mon cas j'ai pas trouvé de solution sur Entity Framework et j'ai utilisé les procédures stockées

  10. #10
    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
    Excellent choix
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  11. #11
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Cette solution ne garantissant pas le ROWLOCK, je suis parti sur le ALTER INDEX ALLOW PAGELOCKS=false. Cette solution fonctionne très bien !

  12. #12
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Moi j'approuverais l'idée d'utiliser une procédure stockée mais je déconseillerais la pose des vérous directement sur les tables et les index. Il faut que tu passes par les transactions.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  13. #13
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Tu n'es pas obliger de créer une procédure stockée Bon je sais à l'avance que la création d'une procédure stockée est souhaitable mais des fois les DBA ne veulent pas qu'on leur donne des décisions comme :
    Certains DBA considèrent cela comme un ordre
    L'utilisation d'une procedure stockée est un best-practice et il doit toujours être recommandé quand l'occasion se présente.
    vous avez raison certains DBA n'adorent pas qu'on leur donne des ordres mais il suffit de leur donnée l'impression que sans eux, vous êtes bloqués que vous les suppliez, avec des formule du genre pourrez-vous, s'il vous plaît ... ca devrait marcher.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/03/2010, 15h07
  2. [LinqToEntities] Group xx into XX
    Par CUCARACHA dans le forum Linq
    Réponses: 4
    Dernier message: 16/10/2009, 15h01
  3. Rowlock ne fonctionne pas
    Par J0r_x dans le forum Développement
    Réponses: 13
    Dernier message: 14/09/2009, 14h11
  4. Réponses: 4
    Dernier message: 26/08/2009, 15h36
  5. Réponses: 1
    Dernier message: 23/08/2009, 14h55

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