And*_*ana 6 c# entity-framework connection-string sql-server-ce ef-code-first
我正在为Windows XP创建一个应用程序,所以我坚持使用.Net framework 4.0.我首先尝试使用SQL Server Compact和EF代码但是在出现错误时会出错update-database.
我希望将数据库放在我的代码目录中以部署在客户机器中.
这是我的连接字符串:
<add name="QuanLyKhoContext"
connectionString="Data Source=MyData.sdf;Persist Security Info=False;AttachDBFileName=MyData.sdf"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
而错误:
此操作需要连接到"主"数据库.无法创建与"主"数据库的连接,因为已打开原始数据库连接并且已从连接字符串中删除凭据.提供未打开的连接.
Ily*_*kin 14
在我的一个项目中,我使用了SQL Server Compact 4.0,我的连接字符串很简单:
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=|DataDirectory|MyDB.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我想你应该检查你的providerName.我不确定是否System.Data.SqlClient是正确的.
你安装了EntityFramework.SqlServerCompact NuGet包吗?安装后,将添加System.Data.SqlServerCe.4.0提供程序名称,并在连接字符串中使用它.
检查SqlServerCompact提供商是否已添加到您的web.config.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
为了防止这种情况,您需要更改连接字符串以具有:
Trusted_Connection=False;Persist Security Info=True
Run Code Online (Sandbox Code Playgroud)
基于以下链接
http://jayhollingum.blogspot.in/2011/03/ef-codefirst-databasesetinitializser.html