(Entity Framework Core入门)一、EFCore简介
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