mvc+mysql+EF

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mvc+mysql+EF相关的知识,希望对你有一定的参考价值。

网上有很多关于EF在联机情况下利用nuget管理器安装的案例,我就讲一下脱机状况吧!

一.建立一个文件夹,例如D:/Packages

    放入安装EF和mysql需要的包:EntityFramework.6.1.3.nupkg

                                            EntityFramework.Extended.6.1.0.133.nupkg

                                            EntityFramework.zh-Hans.6.1.3.nupkg

                                            MySql.Data.6.9.8.nupkg

                                            MySql.Data.Entity.6.9.8.nupkg

                                            MySql.Web.6.9.8.nupkg

                                            (根据自己的版本放入自己建立的文件夹)

二.项目右键---管理NuGet程序包---设置---名称(例如Package source)---源(找到自己放的Ef+mysql包的文件夹,例如之前的D:/Packages)---设置ok

三.vs的菜单项---工具---库程序包管理器---程序包管理控制台:(注意:如果有多个项目 ,在程序包管理控制台--默认项目选择自己要安装的项目)

   在PM>后输入

                   Install-Package EntityFramework -Version 6.1.3(根据自己的版本号添加)              回车键确认安装信息

                   Install-Package EntityFramwork.zh-Hans -Version 6.1.3

                   Install-Package MySql.Data -Version 6.9.8

                   Install-Package MySql.Data.Entity -Version 6.9.8

                   Install-Package MySql.Web -Version 6.9.8                 安装完毕

四.定义一个上下文类:

         使其继承DbContext 

         例如:

               [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]  //未添加的情况下就会在Add-Migration InitialCreate时候报错:未为提供程序“MySql.Data.MySqlClient” 找到任何 MygrationSqlGenerator.请在目标迁移配置类中使用 SetSqlGenerator 方法以注册其他SQL生成器

                public class DataContext:DbContext

                 {

                    //name 新建的连接字符串名称和Context类名不同时候,要在上下文的构造函数中指定连接字符串的名称

                     public DataContext():base("name="Test") {

                         Database.SetInitializer<DataContext>(null)  //不初始化

                    }

                   //自己添加的model,放到数据库中去的

                     public DbSet<User> User{get;set}

                  }

五.利用EFCodeFirst的数据迁移,在补改变之前数据库结构已经存在的测试数据情况下添加,进行对数据库的操作

  Enable-Migrations -EnableAutomaticMigrations:使用EF CodeFirst 下的数据迁移

  Add-Migration InitialCreate 创建初始化迁移

  Updata-Database -Verbose 修改数据库,将添加的表放到数据库

  添加表:

  Add-Migration Add表名 例如:Add-Migration AddCompany

  Update-Database -Verbose

  添加字段

  Add-Migration 字段名 例如:Add-Migration Name

  Update-Database -Verbose

  删除字段

  Add-Migration Modify表名 例如:Add-Migration ModifyCompany

  Update-Database -Verbose

以上是关于mvc+mysql+EF的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC EF 和 MySQL

MVC3 代码优先 - EF4.1 不会自动创建表(使用 MySQL 和 Connector/Net 6.3.6。)

.NET框架 - NETFramework + API + EF(DBFirst) + MYSQL

亲测Asp.net Mvc5 + EF6 code first 方式连接MySQL总结

关于ef+codefirst+mysql(入门)

EF6 CodeFirst使用MySql