当然可以在 Windows Azure 上使用 SQL Server Compact。但是,您需要问自己:
我会更改数据库中的任何内容吗?
这包括添加、更新和删除数据。如果这样做,则不应在Windows Azure 上使用 SQL Server Compact。因为,如果您在 Windows Azure 上使用 SQL Server Compact 并更改数据库中的任何内容,您将遇到两个问题:
- 数据不会被复制。
- 您有丢失数据的风险。
不复制数据
如果您更改数据库中的任何内容,则更改将保留在本地。这意味着如果您有多个实例运行您的 Web 应用程序,那么每个 Web 应用程序都将拥有自己的数据库,如果您在其中一个实例中进行更改,则更改不会复制到其他实例,这将导致不可预知的行为在您的应用程序中。
您可能会丢失数据
如果在部署后更改数据库中的任何内容,则可能会丢失数据,因为 Windows Azure 可能决定将您的实例重新部署到另一台虚拟机或物理机。发生这种情况时,将使用您最初上传到 Windows Azure 的部署包设置新实例,并且该包不包含您对数据库所做的任何更改。出于多种原因,这种重新部署可能随时发生。
结论
那么,Azure 上的 SQL Compact?当然,如果您的数据是只读的,那也没问题。但是,请注意,您不会获得使用 SQL Azure 的性能。但是,如果您的需求在未来发生变化,您始终可以将您的应用程序从 SQL Server Compact 迁移到 SQL Azure。
如果您想在 Windows Azure 中使用 SQL Server Compact,您可以使用“私有部署”方法,如“ErikEJ”的博客中所述。
编辑:微软宣布他们现在为每个 Azure 订阅提供1 个免费的 20 MB SQL Azure 数据库。这意味着您可以使用免费的 SQL Azure 数据库创建订阅并创建免费网站。(只要小于 20 MB)您还可以免费将多个网站与同一个 SQL Azure 数据库关联。因此,如果您正在考虑在 Windows Azure 上使用 SQL Server Compact,因为您的数据库非常小并且您不想为 100 MB 的数据库付费,您可以考虑此选项。在大多数情况下,这将是一个更好的解决方案。您的网站会表现得更好,您的数据库性能会更好,并且您有能力更改数据并将其复制。