.net core 引入ef core 模式之 codefirst


這章主要是說:.net core中使用ef  core 框架中的codefirst模式去處理數據庫方面的使用說明,以下是官方連接

https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/  

EF與EF core我在使用方面最大的一個不同點就是:

EF通過code配置后,可以達到更改屬性后,同時改動數據庫表或字段:

1   public EFDbcontext()
2             : base(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString)
3         {
4 
5             Database.SetInitializer(new MigrateDatabaseToLatestVersion<EFDbcontext, Configuration<EFDbcontext>>());
6         }

而EF Core 更改model后 並不能讓數據庫與其同步,需要 通過命令來操作,如下:

將Student.Title 重命名為Student.Title222,需要對應的遷移命令如下:

Add-Migration ChangeName
Update-Database

注意!實際上改完的操作為:刪除了數據庫中的列Title 新增列Title222,與需求不符合

改完之后會在Migrations文件夾有對應的code文件生成,如上操作,會產生如下code: (還不知道這個框架能不能給解決這樣的問題)

 public partial class ChangeTitle222 : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "Title",
                table: "Student");

            migrationBuilder.AddColumn<string>(
                name: "Title222",
                table: "Student",
                maxLength: 255,
                nullable: true);
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "Title222",
                table: "Student");

            migrationBuilder.AddColumn<string>(
                name: "Title",
                table: "Student",
                type: "nvarchar(255)",
                maxLength: 255,
                nullable: true);
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM