现象:

现象:

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时就报“未将对象引用设置到目的实例”的丰硕:

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

我们那篇小说介绍怎么利用EF连接MySql

DbProviderServicesExtensions.GetProviderManifestTokenChecked

DbProviderServicesExtensions.GetProviderManifestTokenChecked

小编的环境

VS2017、Win10、MySql5.x

 澳门金沙国际 2

 澳门金沙国际 3

前言

貌似在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在数额迁移时找不到数据库连接串消息

1.种类运转项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串音讯

开头添加codefirst

项目建完后,大家新建一个数据模型:右键->新建项->数据->ADO.NET实体数据模型。名字为Model,如下图:
澳门金沙国际 4

点击添加后,大家选择【空Code First模型】
澳门金沙国际 5

2.品类运维项配置错误,应该拔取有entityFramework节点或connectionStrings节点的门类作为运营项目

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的数据库:
澳门金沙国际 6

到此,为止计划

相关文章