我正在启动一个将与 Microsoft SQL 数据库交互的应用程序(c#、.net)。我需要多个客户端同时访问数据的能力,因此我将使用基于服务的数据库 (.mdf)。是否可以使用本地数据库 (.sdf) 开发应用程序,然后在部署时轻松将其切换到基于服务的数据库?这就是它通常所做的这种类型的开发吗?
5 回答
您可以通过在 .config 文件中提供与数据库的连接字符串来控制数据源。
您甚至可以使用不同的连接字符串创建 .config 文件的调试和发布版本。Debug 可以指向您的本地机器并发布到生产环境。
开发商店各不相同,但在本地使用 SQL Express 开发应用程序然后在生产环境中使用完整安装的 SQL Server 是很常见的。
我唯一建议的是确保您为开发环境选择的数据库支持与您在生产中期望的功能相同的功能。例如,当您希望在生产中使用 Oracle 时,不要在您的开发机器上使用 SQL Express。
如果您有多个客户端,那么您应该使用 SQL Server Express(.mdf 文件) - SQL Server Compact(.sdf 文件)在您构建将部署在客户端计算机上并将独立运行的应用程序时非常有用,例如 windows使用本地数据库形成应用程序。SQL Server Compact 只是 MS Access .mdb 文件或 SQLite(所谓的“嵌入式数据库”)的替代品,而 SQL Server Express 是一个真正的数据库服务器(尽管有一些限制使其不适合大型商业应用程序)并且应该在多个客户端使用中央数据库的情况下使用,例如 Web 应用程序和智能客户端应用程序(后者也可以使用本地嵌入式数据库)。
您想使用 SQL Compact Edition(正如您所说的数据库文件扩展名为 .sdf),对吗?您可以改用 MSSQL Express Edition,因为它更像是完整的 MSSQL Server,并且仍然是免费的,并且在开发人员的机器上安装并不难(我个人更喜欢这个选项)。两者之间存在差异(如此处所述:http: //blog.sqlauthority.com/2009/04/22/sql-server-difference-between-sql-server-compact-edition-ce-and-sql-server -表达版/)。如果您不想在数据库中使用触发器/过程/视图等功能,您仍然可以使用 CE。
如果两个后端中的数据库模式完全相同,那么您唯一需要做的就是在准备移动到基于服务的数据库时更改连接字符串。请注意,架构中最轻微的更改可能(并且可能会)导致问题。