连接字符串 C# Entity Framework SQL Server Express

Connection string C# Entity Framework SQL Server Express

我正在使用 C# WPF EF6.0 和 SQL Server Express 作为最终程序。

我已经使用 Advanced 安装程序创建了一个安装文件,它通过脚本和 SQL Server Express 在

中创建数据库
C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

并且我更改了我的字符串连接

<add name="MyDBEntities" 
     connectionString="metadata=res://*/MyDBModel.csdl|res://*/MyDBModel.ssdl|res://*/MyDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MyDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

对此

<add name="MyDBEntities" 
     connectionString="metadata=res://*/MyDBModel.csdl|
                       res://*/MyDBModel.ssdl|
                       res://*/MyDBModel.msl;
                       provider=System.Data.SqlClient;
                       provider connection string=&quot;
                             Data source=.\SQLExpress;
                             integrated security=True;
                             MultipleActiveResultSets=True;
                             Initial Catalog=MyDB;
                             App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />  

我已经安装了我在 Visual Studio 2013

中使用的 .net Framework 4.5 和 SQL Server 2012 sp1 v11.0.300

当我安装我的程序时,一切正常,但是当我 运行 我的程序在第一次启动时就停止工作了。我认为连接字符串有问题。 如果我在 Visual Studio 中单击调试,我会看到此错误

An unhandled exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll.Additional information: No connection string named 'MyDBEntities' could be found in the application config file.

原因是您没有将数据库文件附加到本地数据库引擎。尝试使用可用的适当 SQL 服务器方法。您的应用程序(安装后)在本地数据库引擎中找不到数据库。

最后我无法使用 Advanced Installer 创建安装文件。 但我是由 Install Shield 创建的。 我的问题是从数据库中插入或删除或编辑。 我把我的程序安装在其他驱动器上,我的问题就解决了。 原因是 C 中的程序文​​件是 readonly.

的笑话