赞
踩
Entity Framework Core就是一个ORM,什么是ORM?Entity Framework Core能把C#里的类映射到数据库里的表,然后属性就映射到字段上。
首先建三个Model或在数据库中建三张表。
假如是一个足球联赛,其包括:League(联赛),Club(足球队、俱乐部),Player(运动员) 三个都是一对多的关系
在Models项目中添加三个Model :League(联赛),Club(足球队、俱乐部),Player(运动员)。
建好三个模型后,在Data类库引用Models类库
- // 联赛
- public class League
- {
- public Guid Id { get; set; }
- public string Name { get; set; }
- public string Country { get; set; }//国家
- }
- //运动员
- public class Player
- {
- public Guid Id { get; set; }
- public string Name { get; set; }
- public DateTime Birth { get; set; }
- }
- //足球队
- public class Club
- {
- public Club()
- {
- Players = new List<Player>();//为了以后使用不会遇到空引用
- }
- public Guid Id { get; set; }
- public string Name { get; set; }
- public string City { get; set; }
- public DateTime DateOfEstablishment { get; set; }//成立日期
- public string History { get; set; }//历史成绩
- public League League { get; set; }//联赛
- public List<Player> Players { get; set; }//运动员列表
- }
在Data类库中通过NuGit安装两个包(菜单栏——工具——NuGet包管理工具——管理解决方案的NuGet程序包)
Microsoft.EntityFrameworkCore.Tools包中会包含Microsoft.EntityFrameworkCore.Design包
将Model映射到数据库里,首先要建立一个AppDbContext类,在Data类库中;这个类需要继承DbContext。
AppDBcontext中包括包含了所有逻辑,比如与数据库交互、数据变化追踪等
为让三个Model能在Context中正常工作,将三个Model暴露成DbSet类型
- public class AppDbContext : DbContext
- {
- public AppDbContext(DbContextOptions<AppDbContext> options)
- : base(options) { }
- public DbSet<League> Leagues { get; set; }
- public DbSet<Club> Clubs { get; set; }
- public DbSet<Player> Players { get; set; }
- }
三个Model写好后,还需要将类映射到数据中,也就是映射数据库的三个表,与数据库连接就需要数据库连接字符串
在WebApi应用程序中的appsettings.json文件中添加如下配置:
- "ConnectionStrings": {
- //两种连接方式都可以 一种weindows验证 一种是sa用户
- //"DefaultConnection": "Server=.;Database=EFCoreDb;Trusted_Connection=True;MultipleActiveResultSets=true"
- "DefaultConnection": "Server=127.0.0.1; Database=EFCoreDb; Persist Security Info=True;User ID=sa;Password=123;Packet Size=512;"
- }
在Startup类的ConfigureServices方法下注入数据库上下文依赖
- services.AddDbContext<AppDbContext>(optionsAction =>
- optionsAction.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。