我正忙于开发自己的应用程序,它使用 sql server 数据库并通过实体框架连接。我使用存储过程来插入、更新、删除、从我的数据库中选择。
该应用程序即使在我发布时也能在我的机器上完美运行。但是当我尝试将应用程序安装到我朋友的计算机上时,我的问题就出现了。它崩溃并且无法启动,因为它无法连接到数据库。
有没有办法使用数据库发布我的应用程序,而无需将所有表、存储过程和数据库导入我朋友的电脑?我只想做到这一点,因此用户只需安装该应用程序即可。
我正忙于开发自己的应用程序,它使用 sql server 数据库并通过实体框架连接。我使用存储过程来插入、更新、删除、从我的数据库中选择。
该应用程序即使在我发布时也能在我的机器上完美运行。但是当我尝试将应用程序安装到我朋友的计算机上时,我的问题就出现了。它崩溃并且无法启动,因为它无法连接到数据库。
有没有办法使用数据库发布我的应用程序,而无需将所有表、存储过程和数据库导入我朋友的电脑?我只想做到这一点,因此用户只需安装该应用程序即可。
您可以使用SQL CE,但如果您更习惯在 SQL Server 中工作,您可能会发现在其中“设计”数据库会有些困难。
您是否考虑过 SQL Server Express 作为一种选择?
在连接字符串问题上,现在可以通过 Nuget 获得微软在 Visual Studio 中使用的数据连接向导;这使得添加一种在客户端机器上动态配置连接字符串的方法变得更加容易。
最后,实体框架的连接字符串与标准 SQL 连接字符串不同。在开始尝试以编程方式配置它们之前,请确保您清楚地了解它们之间的差异。Julie Lerman 关于实体框架的优秀书籍很好地解释了这些差异。
你的应用程序依赖于数据库来工作,所以如果你想把它放在你朋友的电脑上,那么你需要让数据库在某个地方可用,无论是本地副本还是存储在运行 SQL 的服务器上的副本。
您如何存储连接字符串?它是在应用程序中硬编码还是您正在使用 app.config 文件?要执行您尝试执行的操作,您需要将连接字符串放入 app.config 文件中,以便您可以根据安装进行更改。
要么
如果您想在没有数据的情况下运行您的应用程序,请将演示标志或其他内容放入 app.config 文件中。将一些代码放入您的应用程序以检查此值,如果为真则绕过 SQL 代码并可能提供一些硬编码的演示数据。
这有意义吗?