1.說明:
一種ORM(Object Relational Mapper),用於程序中的class類和數據庫中的表互相之間進行建立映射關系
2.優勢
1)生產力
2)支多種數據庫
3)可以使用Linq
4)注重領域(Domain),而不是數據庫
3.支持框架
1).NET Core2.X
2).NET 4.6.1+
3)UWP
4)Xamarin
4.使用
1)建立項目EFCore、類庫(Core.Data、EFCore.Domain.Models)
2)在EFCore.Domain.Models類庫中建立City.cs、Province.cs
Province.cs
using System; using System.Collections.Generic; using System.Text; namespace EFCore.Domain.Models { /// <summary> /// 省份 /// </summary> public class Province { public Province() { Cities = new List<City>(); } /// <summary> /// 編碼 /// </summary> public int Id { get; set; } /// <summary> /// 省份名稱 /// </summary> public string Name { get; set; } /// <summary> /// 人口 /// </summary> public int Population { get; set; } /// <summary> /// 城市 /// </summary> public List<City> Cities { get; set; } } }
City.cs
using System; using System.Collections.Generic; using System.Text; namespace EFCore.Domain.Models { /// <summary> /// 城市 /// </summary> public class City { /// <summary> /// 編碼 /// </summary> public int Id { get; set; } /// <summary> /// 城市名稱 /// </summary> public string Name { get; set; } /// <summary> /// 郵編 /// </summary> public string AreaCode { get; set; } /// <summary> /// 所屬省份編碼 /// </summary> public int ProviedId { get; set; } /// <summary> /// 省份 /// </summary> public Province Province { get; set; } } }
3)在Core.Data類庫的Nuget中安裝Microsoft.EntityFrameworkCore.Sql
4)引用類庫EFCore.Domain.Models
5)在Core.Data類庫添加MyContext.cs
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Text; using EFCore.Domain.Models; namespace Core.Data { public class MyContext:DbContext { public DbSet<Province> Provinces { get; set; } public DbSet<City> Cities { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //使用本地的Windows驗證 optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=EFCoreDemo;Trusted_Connection=True;"); //base.OnConfiguring(optionsBuilder); } } }
5.EFCore遷移(在Visual Studio中使用,需要安裝Microsoft.EntityFrameworkCore.Tools)
1)步驟說明
①創建/修改Domain Model
②創建遷移文件
③應用遷移到數據庫,或者生成腳本
2)遷移
①在Core.Data類庫的Nuget中安裝Microsoft.EntityFrameworkCore.Tools
②點擊選擇打開 工具=》Nuget包管理器=》程序包管理器控制台
③在 程序包管理器控制台 運行 get-help entityframeworkcore 查看命令
④執行命令 Add-Migration Initial
結果發現:
原因:電腦PowerShell版本太低(https://www.microsoft.com/zh-CN/download/details.aspx?id=40855)
升級后執行add-migration build123(取個名字:build123 )
注意:啟動項必須設置成含有數據庫連接的項目程序(將Core.Data設置為啟動項,因為數據庫連接文件MyContext.cs在此項目中)
得到生成文件:
快照文件:MyContextModelSnapshot.cs
遷移文件:20190409135744_build123.cs
⑤使用script-migration執行獲取數據庫執行文件(fy5kwycw.sql),用其在數據庫上執行生成數據庫
或者使用Update-Database直接生成數據庫,然后在 C/User/用戶名 文件里頭可以找到EFCoreDemo.mdf數據庫
查看數據庫
感謝:Dave
參閱: https://v.qq.com/x/page/h0762wjguc5.html