mvc+mysql+EF

網上有不少關於EF在聯機狀況下利用nuget管理器安裝的案例,我就講一下脫機情況吧!mysql

一.創建一個文件夾,例如D:/Packagesweb

    放入安裝EF和mysql須要的包:EntityFramework.6.1.3.nupkgsql

                                            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.nupkgspa

                                            (根據本身的版本放入本身創建的文件夾)orm

二.項目右鍵---管理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

 

記得注意事項:

1.類型「System.Data.Entity.DbContext」 在未被引用的程序集中定義。必須添加對程序集「EntityFramework, Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089」 ---在本身引用EF上下文的程序中(web中)安裝EF相關

2.即便引用上下文所在的程序集,以及在web項目中 PlatformDbContext  db=new PlatformDbContext(), 在web的web.config中沒有配置鏈接字符串,也是會報「未將對象實例化」---因此記得在本身的頁面所在web,或者控制檯引用程序中配置鏈接數據庫字符串。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息