中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

發布時間:2021-07-24 13:58:44 來源:億速云 閱讀:120 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“asp.net mvc CodeFirst模式實現數據庫遷移的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“asp.net mvc CodeFirst模式實現數據庫遷移的示例分析”這篇文章吧。

利用Code First模式構建好基本的類后,項目也開始搭建完畢并成功運行,而且已經將數據庫表結構自動生成了。

但是,我有新的類要加入,有字段需要修改,那怎么辦呢,刪庫,跑路 ? 哈哈

利用數據庫遷移,將原有結構不改動,將新建類進行單獨建表操作,或者是已有數據庫表,改變字段,那就修改表。

遷移步驟:

1.打開程序包管理器控制臺:工具->NuGet包管理器->程序包管理器控制臺.(當然還有其它方式也可以打開,我比較喜歡這種)

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

點擊后將彈出程序包管理器控制臺

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

極其要注意的是默認項目!!!

2.啟動數據庫遷移,執行命令:enable-migrations

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

由于Models不一定就是直接利用項目中已有的文件夾Models,從而當你選中啟動項目為asp.net mvc 框架類型時,此處將會報錯

具體來看我當前項目的分布情況:

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

我將模型分離出來了,以至于當我默認選中SearchEngine為啟動項目時,在程序包管理器控制臺中輸入的第一個命令就會報錯

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

解決方案:選中默認項目,選擇為DbContext所在的項目,此處我的是類庫

成功操作會如下提示:

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

并且在DbContext同級目錄下增加了migrations目錄

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

3.開始數據庫遷移命令

1.Add-migration [自定義版本名稱]

  輸入add-migrationupdateorderheader

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

2.update-database

  輸入update-database

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

此處如果和我一樣將DbContext單獨分割出來的需要注意,需要在當前類庫的配置文件中加上數據庫的連接地址

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

如果是直接在asp.net mvc框架中的Models中加入的DbContext,則可不必,會直接讀取Web.Config文件中的連接字符串

等待命令執行中......

出現異常了

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

開始尋找我電腦中的SQL Server Configuration Manage ,如果有則打開,找到

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

配置TCP/IP協議為已啟用即可。

我的本地沒有該工具,只能通過如下方式找到該處

點擊我的電腦右鍵->管理->服務和應用程序->SQLServer配置管理器 ( 兩次找這工具都沒找到,貌似都是直接從這解決的)

重新輸入命令,等待執行

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

初步成功

由于數據庫中有些表無需更改

我們可以在migrations目錄中,更改需要增加或修改的具體表

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

通過修改其中的CreateTable/DropTable,可以控制哪些表需要改動

namespace SAssassin.EF.Model.Migrations
{
  using System;
  using System.Data.Entity.Migrations;

  public partial class updateorderheader : DbMigration
  {
    public override void Up()
    {
      CreateTable(
        "dbo.MyFileInfoes",
        c => new
        {
          Id = c.Int(nullable: false, identity: true),
          FileName = c.String(),
          FileDescription = c.String(),
          FilePath = c.String(),
          FileType = c.Byte(nullable: false),
          FileSize = c.String(),
          FileStatus = c.Byte(nullable: false),
          IsPublic = c.Byte(nullable: false),
          UserId = c.String(),
          UserName = c.String(),
          CreateDate = c.DateTime(nullable: false),
          LastModityDate = c.DateTime(nullable: false),
        })
        .PrimaryKey(t => t.Id);
    }

    public override void Down()
    {
      DropTable("dbo.MyFileInfoes");
    }
  }
}

4.修改代碼配置,實現之后的操作沒那么麻煩

修改migrations目錄中的Configuration.cs文件,開啟自動遷移

asp.net mvc CodeFirst模式實現數據庫遷移的示例分析

5.在項目Global.asax的Application_Start中加上如下代碼行:

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.MigrateDatabaseToLatestVersion<SAssassin.EF.Model.CodeFirst, SAssassin.EF.Model.Migrations.Configuration>());

到此,數據庫遷移工作已經完畢了。

以上是“asp.net mvc CodeFirst模式實現數據庫遷移的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭州市| 海口市| 大安市| 凌源市| 抚松县| 岗巴县| 黑水县| 桓台县| 宜城市| 桦川县| 南投县| 宜宾县| 昌乐县| 大荔县| 东平县| 营山县| 保德县| 靖宇县| 百色市| 清水县| 讷河市| 临海市| 武穴市| 南江县| 宝兴县| 水富县| 古丈县| 城口县| 周至县| 扶绥县| 醴陵市| 宜兴市| 马公市| 喀什市| 化州市| 白城市| 阿坝| 忻城县| 镇远县| 枣庄市| 万荣县|