Bonjour,
Je développe actuellement une application sous Visual Studio Express en C#. Cette application modifie régulièrement une base de données locale (.sdf). L'application tourne à peu près correctement, si on ne sollicite pas trop d'accès multithread...
Dans cette application je me sers du concepteur de vue mon créer mes TableAdapter (très efficace au passage, je trouve) et j'instancie un nouveau TableAdapter lors de chacun de mes accès à une table.
Je suis un peu newbee sur l'interopérabilité de .NET avec ADO et autre Entity Framework, ne m'en voulez donc pas pour mon vocabulaire approximatif
Mon problème est le suivant: pensant m'adresser à SQL Server CE pour écrire dans mon fichier SDF (base locale), j'ai visiblement mal supposé que ces accès étaient multithread-proof. Ce n'est à priori pas le cas au vu de certaines exception que j'ai vu passer (Exception: "accès concurrent au fichier ***.sdf" etc...).
J'ai lu ici et là que lorsque chaque Thread monte sa connexion, SQL Server se débrouillait pour empiler les requêtes et répondre à chaque thread l'une après l'autre. Suis-je complètement à côté des clous ? Je ne suis pas non plus en mesure de vous dire si je travaille en mode connecté ou non (même si je suppose que c'est du non-connecté)
Si tel est le cas, quelqu'un pourrait-il m'orienter vers une liste de bonnes pratiques concernant l'accès aux données ? j'ai déjà lu celui de developpez.com qui traite d'ADO mais j'aimerais, si possible de pas avoir à re-développer tous mes TableAdapter...
Merci d'avance pour vos conseils avisés
Partager