Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Linq to sql [ Base de données / SQL Server ] (SeeD2018)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,889 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.