begin process at 2012 02 16 12:08:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

SQL Server

 > 

Linq to sql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Linq to sql

jeudi 2 octobre 2008 à 17:24:40 | Linq to sql

SeeD2018

Bonjour,
J'ai des problèmes avec l'utilisation de linq to sql.
J'ai deux applications "A" et "B" qui peuvent modifier et lire des données d'un table de ma base de donnée (sql server 2005). C'est en fait les même applications.
Le resultat des requetes linq me renvoit un résultat différent de celui de la base de donnée... je m'esplique...
En fait lorsque mon application "A" modifie des valeurs dans la base de donnée, la base de donnée est modifiée est les bonnes valeurs apparaissent pour "A" mais l'application "B" ne les "voit" pas. J'ai beau refaire des select, regarder dans le debugger  Par contre les valeurs de la table dans la base de donnée sont modifiées.
Inversement si je modifie à partir de l'application "B" , "B" voit les changements mais pas "A".

par la suite j'ai trouvé une méthode du datacontext : .refresh(refreshmode.overwritecurrentvalues,"ma table")
alléluia ca fonctionnait  quand "A" modifiait la base de donnée, "B" le voyait.

sauf que ce refresh dégrade complètement les performances de mon application


avez vous une idée pour passer outre cette méthode refresh ou autre?

SeeD2018
ps : quand j'utilisais des fonctions de la classe 'system.data.sqlclient' ca fonctionnait bien, sauf que je dois passer à linq
jeudi 2 octobre 2008 à 18:16:25 | Re : Linq to sql

SeeD2018

Bon,

En Fait, il faut oublier le problème ci dessus....c'est la requete linq en vert qui donne ce comportement,

Return (From ligneA In TabIdEAbo Join ligneE In L.EntiteGetByConfigE(ConfigE) On ligneA Equals ligneE.Id _

 Order By ligneE.Nom, ligneE.Prenom _

'Select New EntitePourLV(ligneE.Id, ligneE.Nom, ligneE.Prenom, ligneE.DateF)).ToArray

ca c'est la correction qui fonctionne.

Return
(From ligneE In L.EntiteGetByConfigE(ConfigE) Where TabIdEAbo.Contains(ligneE.Id) _

OrderBy ligneE.Nom, ligneE.Prenom _

SelectNew EntitePourLV(ligneE.Id, ligneE.Nom, ligneE.Prenom, ligneE.DateF)).ToArray

why?


SeeD2018
jeudi 2 octobre 2008 à 19:15:30 | Re : Linq to sql

SeeD2018

en fait , j'ai des problemes avec d'autre requete linq comme

banque est une table dans le LinqClass
"select ligne from banque"

cette requete ne me renvoit pas les bonnes valeurs , elles sont bonne juste au démarrage de mon appli....

SeeD2018
vendredi 3 octobre 2008 à 11:44:22 | Re : Linq to sql

SeeD2018

Dans le premier cas, c'est le code de la requete qui n'etait pas bon.
Dans le second cas, ca ne vient pas du code de la requete mais d'autre chose, jene sais pas quoi

SeeD2018
vendredi 3 octobre 2008 à 16:42:40 | Re : Linq to sql

Kevin.Ory

Salut,
Pour ta 1ère question: Lorsque on modifie une BDD, les changements ne sont pas directement appliqué à la BDD, mais seulement gardé en mémoire locale.
Pour appliquer les changements à la BDD, il faut appeler la méthode SubmitChanges du DataContexte, cela permet d'uploader les changements pour mettre la BDD à jours.
Clair que tu vas perdre en performance, l'utilisation d'une base de données n'est pas destiné à faire du partage de données entre applications locales, et il s'agit d'un traitement sur un fichier, pas seulement dans la mémoire comme lorsque on utilise une List(Of ...) par exemple.
vendredi 3 octobre 2008 à 16:54:51 | Re : Linq to sql

SeeD2018

Merci pour ta réponse,
J'utilise déjà un submitchange des qu'il ya une modification de la base de donnée,
et ca modifie la base de donnée.Ce que j'essaye d'espliquer c'est que malheureusement ca ne fonctionne que dans l'application en cours et pas dans les autres. comme si linq ne lisait en lecture que les objet en mémoire sans interroger la BDD.

SeeD2018
vendredi 3 octobre 2008 à 17:47:35 | Re : Linq to sql

Kevin.Ory

La base de données est donc bien mise à jours avec un SubmitChange à  partir de l'application A, et pourtant les changements ne sont pas visible si tu réinterroge la base de données depuis l'application B?

Effectivement, étrange, mais je suis dans le même cas que toi, aucune idée pourquoi cela se produit...
Ce qui m'étonne surtout, c'est qu'avec LINQ la base de données n'est pas téléchargé localement au début, mais seulement les données utiles lorsque tu utilise les données, donc dans ton exemple lors du .ToArray.
samedi 4 octobre 2008 à 10:47:26 | Re : Linq to sql

SeeD2018

quelqu'un a une idée

SeeD2018
lundi 6 octobre 2008 à 12:03:42 | Re : Linq to sql

SeeD2018

Réponse acceptée !
Après plusieur test, j'ai trouve une solution
L'exemple1 foire, même avec un ToList, un .ToArray
L'exemple 2 est bon pourquoi je ne sais pas...

Exemple1:

ForEach b As LBanque In (From ligneE In L.BanqueGet Select ligneE)

MsgBox(b.Libelle)

NextExemple 2:

ForEach b As LBanqueEntite In (From ligneE In L.BanqueGet SelectNew LBanqueEntite(ligneE.Id, ligneE.Libelle))

MsgBox(b.Libelle)

Next

SeeD2018
lundi 6 octobre 2008 à 12:06:51 | Re : Linq to sql

SeeD2018

Comme je n'arrive pas à modifier un de mes commentaires dans ce forum, j'ajoute un com.
J'ai oublié de vous mettre la classe LbanqueEntite

Public

Class LBanqueEntite
            Inherits LBanque

            PublicSubNew(ByVal _Id AsInteger, ByVal _Libelle AsString)
               Id = _Id
               Libelle = _Libelle
            EndSub

End
ClassAvez vous une esplication?

SeeD2018

1 2

Cette discussion est classée dans : base, donnée, sql, to, linq


Répondre à ce message

Sujets en rapport avec ce message

Connection sur une base de donnée SQL sur internet en VB [ par nmathon ] Salut...Je débute en VB et je n'arrive pas à trouver la syntaxe pour se connecter sur une base de donnée distante en SQL. Je m'explique... J'ai un sit Base SQL SERVER et images... [ par mpsi ] Salut à tousJe suis en présence d'une base de donnée SQL Server contenant entre autre des images.Le problème que je rencontre est celui de la taille d Base de donnée [ par vaughan ] Bonjour,Pour accéder à une base de donnée j'utilise l'ODBC en me connectant via le nom du System Data Source (DSN).J'aimerai connaitre la nature de la sql serveur2000 [ par REZIGMSCOM ] j'ai unre base de donnée access connecté a mon application avec ODBC je veut changer la base de donnée access avec sql serveur 2000 , comment faire me Base de donnée Access importation vers SQL [ par adnil543210 ] Bonjour a tous et a toutes, je suis débutante en programmation, je ne sais pas par ou commencer, je dois programmer un module ( une moulinnette) en V requete sql [ par pointdalattitude ] Bonjour, j aimerai savoir comment on fait pour rechercher une donnée quelconque dans ma base de donnée, j ai déja creer mes bases de données avec acce lier SQL IRC [ par tinouche ] bonjour voila je vosu explique mon probleme. je possede un site en php avec une liaison avec une base de donnée MySQL je voudrai savoir comment faire base de donnée sql [ par acornuault ] J'ai besoin d'obtenir pour un stage le contenu d'une base de donnée en sql dont toutes les tables sont inconnues.Comment faire pour obtenir tout le co Formulaires Access et base de donnée SQL Server [ par zarbiman ] Bonjour, j'ai actuellement une application possédant deux fichiers Access, l'un avec des formulaires, et l'autre avec des données. Pour le moment, je recupérer une base de donnée dans sql server 7.0 [ par mboulifa ] bonjour,j'aimerai savoir cooment récupérer une base de donnée dans sql server 7.0 que j'ai éffacé par erreur SVP  merci beaucoup


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales