Después de escribir "Elija entre SQL Server Express Edition y Compact Edition", algunos amigos en el jardín me preguntaron si SQL Server Compact Edition (sqlce) es compatible con ASP.NET. No estaba seguro en ese momento. Lo probé yo mismo y definitivamente no funcionó, ¡pero pensé que era extraño y no había razón para no apoyarlo!
¡Leí el blog de Steve Lasker hoy y finalmente lo descubrí!
Dado que sqlce no es compatible con ASP.NET de forma predeterminada, muchos usuarios han realizado solicitudes a MS, se han quejado constantemente e incluso han amenazado (si no permite que lo admita, usaré productos XX). Steve Lasker finalmente no pudo quedarse quieto y salió a aclarar todo esto.
De hecho, el posicionamiento de sqlce en el mercado es muy claro, principalmente para solucionar los problemas de sincronización y almacenamiento de datos fuera de línea de los clientes inteligentes. Esto también se aclara en "Elección entre SQL Server Express Edition y Compact Edition". Por lo tanto, Microsoft no ha optimizado el escenario de uso de sqlce como base de datos de sitios web. En un entorno de acceso multiusuario a sitios web y concurrencia de datos, el rendimiento de sqlce no es ideal y no se puede comparar con SQL Server Express. Por lo tanto, se recomienda que el sitio web siga utilizando SQL Server Express o la base de datos SQL Server. Debe saber que sqlce es un motor de base de datos integrado y SQL Server Express es un servicio de base de datos. Ahora, el Hosting Toolkit SQL Server lanzado recientemente por el equipo de desarrollo de SQL Server puede ayudarle a implementar SQL Server Express en su servidor web.
Entonces, ¿puede ASP.NET utilizar sqlce como almacenamiento de datos? ¡Poder!
De forma predeterminada, sqlce se bloqueará al abrir una conexión de base de datos sqlce en el proceso de trabajo de ASP.NET. Puede eliminar esta restricción mediante el siguiente código. Esta línea de código cambiará en la versión RTM porque se cambió el nombre de sqlce y ya no se llama SQL Server Everywhere:
AppDomain.CurrentDomain.SetData("SQLServerEverywhereUnderWebHosting", true)
debe tenerse en cuenta que la función de sincronización de datos de sqlce no se puede utilizar en ASP.NET.
En resumen, no importa qué tan grandes sean los zapatos, qué tan grandes sean los pies. No debes usar sqlce en ASP.NET. Si insistes en usarlo, ¡presta atención a las consecuencias!
Referencia:
SQL Server Compact Edition bajo ASP.net e IIS
Clase SqlCeConnection (System.Data.SqlServerCe)