生产环境中使用SQL Server Express数据库部署的WPF应用程序

时间:2015-09-18 13:18:12

标签: sql-server wpf entity-framework localdb

我有一个WPF应用程序,我使用Entity Framework与我机器上的SQL Server Express上的数据库进行交互。我推测数据不会很大的小型项目然后我不想在客户端的机器上安装SQL Server Express,原因有两个:

  1. 安装需要很长时间
  2. 这些项目必须可在具有低硬件规格的计算机上执行(安装SQL Server需要花费太多时间)
  3. 我尝试在客户端计算机上安装LocalDB,创建默认实例并启动

    问题是两个:

    1. 如何重新配置​​app.config文件使实体框架连接到数据库? (在开发环境连接字符串中是SQL Server样式)

    2. 在哪里放数据库文件? (用户的个人资料根?)

    3. 我是否遵循了正确的方法?我知道只有两种方法可以做到这一点,安装SQL Server Express或使用LocalDB可能是第三种方式吗?

1 个答案:

答案 0 :(得分:0)

您可以按如下方式设置app.config文件(只需将“C:\ Database.mdf”替换为数据库的完整路径):

  <connectionStrings>
     <add name="NameOfConnectionString" connectionString="data source=(LocalDB)\v11.0;attachdbfilename=C:\Database.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
   </connectionStrings>

但是这样你最终会得到相同的静态连接字符串。

也许您希望将数据库存储在某个用户文件夹中。 这将在运行时获取用户文档文件夹的子文件夹:

string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "MyAppsFolder");

如果要将本地数据库部署到用户计算机,则可能需要为此创建安装程序项目。见here


另一种方法是在客户端计算机上安装某个版本的SQL-Server。

如果客户端站点可能有多个并发用户,则您将无法选择其他用户。


本地数据库与SQL-Server Express之间的差异

如果您需要有关本地数据库和SQL-Server express的使用方案的更多信息,请查看this问题和答案。

This MSDN网站还提供了大量有关LocalDB的信息。