首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQLServerCompact4.0连接字符串首先用于实体框架代码?

SQLServerCompact4.0连接字符串首先用于实体框架代码?
EN

Stack Overflow用户
提问于 2014-10-18 15:13:24
回答 3查看 17.2K关注 0票数 7

我正在为Windows创建一个应用程序,所以我只能使用.Net框架4.0。我尝试首先使用代码,但是当update-database时它会出错。

我希望将数据库放在我的代码目录中,以便部署到客户机器中。

这是我的连接字符串:

代码语言:javascript
运行
复制
<add name="QuanLyKhoContext" 
     connectionString="Data Source=MyData.sdf;Persist Security Info=False;AttachDBFileName=MyData.sdf" 
     providerName="System.Data.SqlClient" />

而错误是:

此操作需要连接到“主”数据库。无法创建到“主”数据库的连接,因为原始数据库连接已经打开,凭据已从连接字符串中删除。提供未打开的连接。

EN

回答 3

Stack Overflow用户

发布于 2014-10-18 22:38:38

在我的一个项目中,我使用了SQLServerCompact4.0,我的连接字符串非常简单:

代码语言:javascript
运行
复制
  <connectionStrings>
    <add name="MyDB" 
            connectionString="Data Source=|DataDirectory|MyDB.sdf"
            providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

我想你应该检查一下你的providerName. 我不确定System.Data.SqlClient是否是正确的。

您安装了EntityFramework.SqlServerCompact NuGet软件包吗?一旦安装好System.Data.SqlServerCe.4.0 提供程序名称,就会添加,并且应该在连接字符串中使用它。

SqlServerCompact 检查提供程序是否添加到 web.config**.**中

代码语言:javascript
运行
复制
  <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>

票数 13
EN

Stack Overflow用户

发布于 2014-10-19 03:34:24

经过多次搜索后,我决定采用一种接近的方法,即LocalDB。我改变了它和这项工作:

代码语言:javascript
运行
复制
<add name="QuanLyKhoContext" connectionString="Data Source=(LocalDB)\v11.0;
AttachDbFilename=|DataDirectory|MyDB.mdf;Integrated Security=True;Connect Timeout=60" providerName="System.Data.SqlClient" />

我认为"System.Data.SqlClient“是一个有效的提供程序,因为我使用的是Sql :)这不是我的第一个目的,但它还是有效的。谢谢大家

我只是不知道什么时候部署在window中,是否需要手动安装Sql或?

票数 1
EN

Stack Overflow用户

发布于 2018-05-25 21:10:44

根据MSDN文档,您可以使用以下内容:

代码语言:javascript
运行
复制
<add name="ConnectionStringName"
    providerName="System.Data.SqlServerCe.4.0"
    connectionString="Data Source=|DataDirectory|\DatabaseFileName.sdf" />

PS:如何安装

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26441242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档