這章主要是說:.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); } }