C# EF调用MySql出现“未将对象引用设置到对象的实例”错误解决方案---修改步骤---1.打开Nuget管理包,把Mysql.Data替换为6.10.0以下任意版本。这里选择的是6.8.8

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

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

4.新建连接字符串

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

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

89ba65113f285d3c07a01fa1da6320c0.png

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

—修改步骤—

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

001643873bab0abd6d9688838a52e14c.png

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

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

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

4.新建连接字符串

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

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

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

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

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

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

public partial class DataModelsContext : DbContext

{

public DataModelsContext()

: base("name=testDbContext") //对应Config中的连接字符串name

{

}

public DbSet new_tableInfo { get; set; }

public DbSet new_tableInfo { get; set; }

public DbSet new_tableInfo { get; set; }

}

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

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

3cfcff0c85a4502bbd0f946434107a6b.png

代码生成器下载

更多推荐