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

Accès aux données Discussion :

[LINQ] DataContext = Vue -> Update plante


Sujet :

Accès aux données

  1. #1
    Membre régulier Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Points : 88
    Points
    88
    Par défaut [LINQ] DataContext = Vue -> Update plante
    Hello

    Je bosse sur une appli qui permet de gerer des employés. Le DataContext de mon UI est une vue qui regroupe des champs qui proviennent de différentes tables. L'interface graphique est très simple, des champs texte / combobox, etc... qui se bindent en WPF. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox x:Name="txtFirstName" Text={Binding Path=FirstName}" />
    Lors de la perte de focus je teste si l'utilisateur a fait des modifs, si c'est le cas je met à jour la base. J'appelle la méthode "SubmitChanges()" sur mon DataContext, et là il essaye de faire un update sur la vue au lieu de la table, ce qui génère évidemment une erreur :

    Autorisation UPDATE refusée sur l'objet 'vw_Employe', base de données 'HR', schéma 'dbo'.

    Y'a t-il moyen de lui dire de faire les updates sur les tables et non sur la vue ?

  2. #2
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Ajoutes des triggers instead-of à ta vue, au niveau de ta base SQL Server.

  3. #3
    Membre régulier Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Points : 88
    Points
    88
    Par défaut
    Hello

    Merci pour ta réponse. N'y a-t-il pas moyen de faire quelque chose côté code plutôt ? Le DBA qui gère la BDD est assez rétissant aux nouvelles technologies, si je lui sors qu' "à cause" de LINQ il faut qu'il fasse une modif dans les vues, il va me dire de retourner aux datasets typés...

    La seule solution (pourrie) que je vois c'est de créer deux DataContext, un avec la vue pour afficher les données, et l'autre avec les tables pour la mise à jour. Mais ça m'oblige à copier les données de la vue vers les tables à chaque fois du coup ça perd de son intérêt.

    Sinon il faudrait que je fasse moi même une requête LINQ et m'en servir comme datasource au lieu d'utiliser la vue. C'est quand même dingue qu'il ne fasse pas la distinction entre une vue et une table !

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Un trigger c'est pas vraiment une nouvelle technologie, ça existe depuis des lustres.
    Et dans ton cas, c'est une solution qui est considérée comme "bonne pratique".

    Je serais toi, j'irais parler au DBA à propos de ces triggers.

  5. #5
    Membre régulier Avatar de annalady
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 169
    Points : 88
    Points
    88
    Par défaut
    Oui quand je parlais de nouvelle techno je parlais de LINQ, pas des triggers.

    Bon je verrai lundi avec lui

    Merci

Discussions similaires

  1. LINQ DataContext Refresh
    Par Aeronia dans le forum Linq
    Réponses: 3
    Dernier message: 08/03/2011, 18h22
  2. Connection LINQ datacontext sur un serveur Distant
    Par strike57 dans le forum Linq
    Réponses: 2
    Dernier message: 16/11/2009, 23h45
  3. [ADP Access 2003/SQL Serveur 2000] Vue non "updatable"
    Par billybob2 dans le forum Access
    Réponses: 14
    Dernier message: 27/02/2009, 08h43
  4. Compteur de vues, INSERT & UPDATE
    Par timathias dans le forum Requêtes
    Réponses: 1
    Dernier message: 13/09/2008, 16h50
  5. ADO et vue SQLServer updatable
    Par PickEpique dans le forum Bases de données
    Réponses: 0
    Dernier message: 10/01/2008, 23h53

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