我有一个WPF应用程序,我使用Entity Framework与我机器上的SQL Server Express上的数据库进行交互。我推测数据不会很大的小型项目然后我不想在客户端的机器上安装SQL Server Express,原因有两个:
我尝试在客户端计算机上安装LocalDB,创建默认实例并启动
问题是两个:
如何重新配置app.config
文件使实体框架连接到数据库? (在开发环境连接字符串中是SQL Server样式)
在哪里放数据库文件? (用户的个人资料根?)
我是否遵循了正确的方法?我知道只有两种方法可以做到这一点,安装SQL Server Express或使用LocalDB可能是第三种方式吗?
答案 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的信息。