2017-02-03 2 views
0

Je suis nouveau au développement .NET et SQL Server CE, je travaille sur quelques problèmes de base de données dans notre produit de l'entreprise.SQL Server CE avec les applications .lipliple .NET

La façon dont il est conçu est il y a 2 applications (.csproj) auquel SQL Server C'est dynamiquement liée (.DLL), nous avons une enveloppe qui utilise la DLL pour créer, mettre à jour, supprimer la base de données, et ils accéder à un base de données CE SQL Server (.sdf)

Après avoir lu en ligne un peu CE SQL Server avec des applications .NET j'ai découvert:

  1. applications multiples peuvent accéder au même fichier .sdf, pas besoin supplémentaire d'avoir propre mécanisme de verrouillage en place pour accéder à la base de données

  2. La base de données est petite et l'application .NET charge la base de données dans la mémoire et les opérations sont effectuées dans la mémoire elle-même.

Maintenant, mes questions sont les suivantes:

  1. Comme il y a 2 .NET des applications qui accèdent à cette base de données .sdf, sont là 2 copies du même fichier .sdf dans la mémoire et les applications modifient leur propre version? Qu'est-ce que je fais de mal, l'équipe voit un problème (le contenu de l'exception a déjà été supprimé), l'accès à la base de données est lent.

Merci

+0

Comme csproj n'est pas une application, un .exe est ... avez-vous des fichiers .exe? – ErikEJ

+0

Donc nous nous retrouvons avec 2 .msi qui fonctionnent comme services d'arrière-plan.ils accèdent au fichier .sdf, la DLL sqlserverce est attachée à la structure de projet des deux –

Répondre

0

1: Si les applications partagent le même fichier, ils modifient le même fichier, et non leur propre version. Notez que SQL CE dispose d'un (max 10 seconde par défaut) de vidage sur le délai de disque. 2: Ne lancez pas d'exception si une suppression a déjà eu lieu! (Vous pouvez être affecté par le délai de tampon de 10 secondes - cela peut être inférieur, mais peut légèrement affecter les performances)

Accès à la base de données lent: peut-être complètement indépendant - avez-vous les index nécessaires etc - c'est-à-dire: nous montrer du code, s'il vous plaît

+0

.msi Merci, je ne peux pas partager comme son code propriétaire. Je vois l'exception DBConcurrency: Violation de la concurrence: la commande DeleteCommand a affecté 0 des enregistrements 1 attendus. –

+0

Pas de code = pas d'aide avec le code, désolé – ErikEJ