繁体   English   中英

使用Mysql设置实体框架6-代码优先

[英]Setup Entity Framework 6 with Mysql - Code first

我正在尝试设置一个现有项目以使用实体框架。 我以前从未使用过它,并且想在个人项目中学习它。

我有一个与许多项目相关的解决方案。 登录是我想查询的地方。 模型就是模型所在的地方。 Main是程序启动的地方。

我已经将EntityFramework安装到MySolution.Model上。

这是Model的app.config:

<connectionStrings>
    <add name="ALDatabaseContext" providerName="MySql.Data.MySqlClient"
        connectionString="server=localhost;port=3306;database=aldatabase;uid=root;password=root"/>
</connectionStrings>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, 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"/>
</providers>
</entityFramework>

我的情况很简单

public class ALDatabaseContext : DbContext
{
    public virtual DbSet<User> Users { get; set; }
}

但是,当我从登录名调用上下文时,出现异常:

附加信息:未找到具有不变名称'System.Data.SqlClient'的ADO.NET提供程序的实体框架提供程序。 确保提供程序已在应用程序配置文件的“ entityFramework”部分中注册。

我缺少什么?

好的,我设法使其正常工作(但我不喜欢该解决方案)。

我已经将它添加到Main的app.config中(我的解决方案的入口):

<connectionStrings>
<add name="ALDatabaseContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;database=aldatabase;uid=root;password=root" />
</connectionStrings>



<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
  <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.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</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.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

并在Login和Main项目中引用了Model的所有dll(与实体框架相关的dll和Mysql dll)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM