首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能首先使用ef6代码更新数据库?

问为什么我不能首先使用ef6代码更新数据库?
EN

Stack Overflow用户
提问于 2019-03-16 08:38:48
回答 2查看 322关注 0票数 0

在实现代码时遇到问题,首先要将ef6连接到godaddy上的MySql数据库。它仍然试图连接到一个SQL实例

运行update-database时会出现以下错误

错误号:53,状态:0,类:20A网络相关或特定于实例的错误发生在建立到Server的连接时。找不到或无法访问服务器。验证实例名是否正确,以及Server是否配置为允许远程连接。(提供者:命名管道提供程序,错误: 40 -无法打开到Server的连接)

这是我的app.config:

代码语言:javascript
复制
<xml version="1.0" encoding="utf-8">
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <connectionStrings>
    <add name="LMScontext" connectionString="Server=servername;Database=dbname;Uid=user;Pwd=password;" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
  <entityFramework>

    <providers>
      <!--<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />-->
      <!--<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />-->
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </providers>

  </entityFramework>
 <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
</configuration>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-16 11:50:49

在我的情况下,一个可行的解决方案是,

在<providers>.....</providers>上方的线下面添加

代码语言:javascript
复制
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
<providers>
  ...
</providers>

然后将<DbProviderFactories>.....</DbProviderFactories>部件从web.config或app.config中删除。

然后将以下属性添加到DbContext类实现中

代码语言:javascript
复制
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]

所以看起来,

代码语言:javascript
复制
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 
public class MySqlDbContext : DbContext 
{
    .....
}
票数 0
EN

Stack Overflow用户

发布于 2019-03-16 08:46:07

尝试一下这.I可能会认为它会有帮助。

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

https://stackoverflow.com/questions/55194934

复制
相关文章

相似问题

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