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;”); 香港vps //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
?
转载于:https://www.cnblogs.com/dzw159/p/10646368.html