Après avoir écrit « Choisissez entre SQL Server Express Edition et Compact Edition », des amis dans le jardin ont demandé si SQL Server Compact Edition (sqlce) prend en charge ASP.NET ? Je n'étais pas sûr à l'époque. Je l'ai testé moi-même et cela n'a définitivement pas fonctionné, mais j'ai trouvé que c'était bizarre et qu'il n'y avait aucune raison de ne pas le soutenir !
J'ai lu le blog de Steve Lasker aujourd'hui et j'ai enfin compris !
Étant donné que SQLCE ne prend pas en charge ASP.NET par défaut, de nombreux utilisateurs ont adressé des demandes à MS, se sont constamment plaints et ont même menacé (si vous ne le laissez pas le prendre en charge, j'utiliserai des produits XX). Steve Lasker n'a finalement pas pu rester assis et est venu clarifier tout cela.
En fait, le positionnement de sqlce sur le marché est très clair, principalement pour résoudre les problèmes de stockage et de synchronisation des données hors ligne des clients intelligents. Ceci est également clarifié dans « Choisir entre SQL Server Express Edition et Compact Edition ». Par conséquent, Microsoft n'a pas optimisé le scénario d'utilisation de sqlce en tant que base de données de site Web. Dans un environnement d'accès multi-utilisateurs au site Web et de concurrence de données, les performances de sqlce ne sont pas idéales et ne peuvent être comparées à celles de SQL Server Express. Par conséquent, il est recommandé que le site Web utilise toujours la base de données SQL Server Express ou SQL Server. Vous devez savoir que sqlce est un moteur de base de données intégré et que SQL Server Express est un service de base de données. Désormais, le Hosting Toolkit SQL Server récemment publié par l'équipe de développement de SQL Server peut vous aider à déployer SQL Server Express sur votre serveur Web.
Alors, ASP.NET peut-il utiliser SQLCE comme stockage de données ? Peut!
Par défaut, sqlce sera bloqué lors de l'ouverture d'une connexion à la base de données sqlce dans le processus de travail ASP.NET. Vous pouvez supprimer cette restriction via le code suivant. Cette ligne de code changera dans la version RTM car sqlce a été renommé et ne s'appelle plus SQL Server Everywhere :
AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting", true)
doit être noté que la fonction de synchronisation des données de sqlce ne peut pas être utilisée dans ASP.NET.
En bref, quelle que soit la taille des chaussures, la taille des pieds, vous ne devez pas utiliser sqlce dans ASP.NET. Si vous insistez pour l'utiliser, faites attention aux conséquences !
Référence :
SQL Server Compact Edition sous ASP.net et IIS
Classe SqlCeConnection (System.Data.SqlServerCe)