EF数据迁移,未将对象援用设置到指标实例

现象:

EF数据迁移,未将对象引用设置到对象实例,ef实例

现象:

执行Enable-Migrations -force时就报“未将对象引用设置到对象实例”的异常:

DbProviderServicesExtensions.GetProviderManifestTokenChecked

 图片 1

 

原因:

1.项目启动项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串信息

2.项目启动项配置错误,应该选择有entityFramework节点或connectionStrings节点的项目作为启动项目

 

现象: 执行Enable-Migrations -force时就报“未将对象引用设置到对象实例”的异常: DbPro...

如何使用EF CodeFirst连接MySql数据库?

执行Enable-Migrations -force时就报“未将对象引用设置到对象实例”的异常:

我们这篇文章介绍怎么使用EF连接MySql

DbProviderServicesExtensions.GetProviderManifestTokenChecked

作者的环境

VS2017、Win10、MySql5.x

 图片 2

前言

一般在EF中,默认是使用SqlServer数据库。
为什么我们要使用Mysql呢?
一方面现在的数据库多种多样,发展到了非关系数据库、内存数据存储等,不得不用其他的软件;
另一方面C#很早也开始了开源与支持多平台(core)的路程

 

开始新建项目

我们这里新建的是WebApi项目,当然你喜欢什么类型项目都一样。
我们新建项目叫EfAndMySql

原因:

开始安装包

install-package MySql.Data.Entity
我们这里的版本是6.9.9
此包因为是依赖EF包的,所以安装此包时会自动安装EF包。

1.项目启动项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串信息

开始添加codefirst

项目建完后,我们新建一个数据模型:右键->新建项->数据->ADO.NET实体数据模型。名字为Model,如下图:
图片 3

点击添加后,我们选择【空Code First模型】
图片 4

2.项目启动项配置错误,应该选择有entityFramework节点或connectionStrings节点的项目作为启动项目

配置web.config

安装完成后,我们配置webconfig文件。

把原来的entityFramework节点换成:

  <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <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"></provider>
    </providers>
  </entityFramework>

把原来的connectionStrings换成我们MYSQL的连接:

<connectionStrings>
    <add name="Model" connectionString="Data Source=localhost;port=3306;Initial Catalog=EfMysql;user id=root;password=root;" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>

值得注意的是,程序是怎么验证我们连接的是Mysql数据库,而不是sqlserver呢?答案就在connectionString中的providerName="MySql.Data.MySqlClient"。 如果我们想用sqlserver或其他数据库的连接,导入相应的包,换连接与providerName就可以了。

 

输入命令与验证

在程序包管理器控制台以此输入:
enable-migrations
add-migration init
update-database

在看看我们的Mysql,成功安装了EfMysql的数据库:
图片 5

到此,结束配置

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:EF数据迁移,未将对象援用设置到指标实例

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。