C# EF调用MySql出现“未将对象引用设置到对象的实例”错误解决方案

在这里插入图片描述
可以看到这里明明实例化了数据库模型对象,却在调用的时候提示 对象为Null的错误,本想通过查看DBContext源码的办法来查看错误原因,无奈,本人实在太菜鸟。查了一个下午,却也得不到任何结果。看了几十篇博客后,突发奇想,会不会是版本的原因。于是开始着手替换MySql.Data.dll的版本号。果然还真是这个原因。

—修改步骤—

1.打开Nuget管理包,把Mysql.Data替换为6.10.0以下任意版本。这里选择的是6.8.8

在这里插入图片描述

2.修改完毕后,继续把Mysql.Data.Entity也修改为对应版本6.8.8。

注:如果没有安装Mysql.Data的话,自行搜索安装对应版本即可。

3.安装完成后可以看到App.Config下多了一个节点

<providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>

4.新建连接字符串

在 configuration 结点下新增连接字符串

<connectionStrings>
		<add name="testDbContext" connectionString="server=.;database=tesst;User Id=root;password=123456" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

5.创建对应数据库的实体模型类

。。。。。省略创建过程。。。。。。。
。。。。。省略创建过程。。。。。。。
。。。。。省略创建过程。。。。。。。

最后的连接数据上下文的类大概是这个样子的

 public partial class DataModelsContext : DbContext
    {
        public DataModelsContext()
            : base("name=testDbContext")  //对应Config中的连接字符串name
        {
        }
        public DbSet<Table1> new_tableInfo { get; set; }
        public DbSet<Table2> new_tableInfo { get; set; }
        public DbSet<Table3> new_tableInfo { get; set; }     
    }

最后,实例化 DataModelsContext 对象,就可以通过EF框架使用MySql数据库了。

最后放上自己做的一个简陋的C#数据模型生成器(带源码),作备用。

在这里插入图片描述
代码生成器下载

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值