.net mvc ef6连接mysql时遇到的坑

文章讲述了在使用.NETMVCEntityFramework6(EF6)连接MySQL数据库时遇到的问题,包括模型类的定义,添加控制器和模型上下文,以及针对不同MySQL版本(5.x和8.x)调整的web.config配置,特别是连接字符串和nuget包的版本匹配。重点在于确保数据库版本与使用的MySQL数据提供者版本一致。
摘要由CSDN通过智能技术生成

关于.net mvc ef6连接mysql时遇到的坑:

  1. 手写模型类
    [Table("user")]
    public class UserModel
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public string pwd { get; set; }
    }
  1. 根据添加controller,添加模型上下文(自动生成)

  1. mysql --version == 5.xxx版本

注意:nuget安装依赖包为mysql.data.entities 版本为6.xx

web.config修改连接字符串,修改EntityFramework配置

<connectionStrings>
    <!--web.config mysql连接串-->
    <add name="WebEntityContext" connectionString="server=localhost; port=3306; user=root; password=123456; database=aspdb;SslMode=none;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
<entityFramework>
    <!--mysql-->
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <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"></provider>
    </providers>
</entityFramework>
  1. mysql --version == 8.xxx

    注意:nuget依赖包为:mysql.Data | mysql.data.entityframework 两者版本需与自身数据库版本保持一致

    web.config修改的配置:

    <connectionStrings>
        <!--web.config mysql连接串-->
        <add name="UserContext" connectionString="server=localhost; port=3306; user=root; password=123456; database=aspdb;SslMode=none;" providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
    
    <entityFramework>
        <!--mysql-->
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
        <providers>
            <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework"></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=8.0.31.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </DbProviderFactories>
    </system.data>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值