Code First顾名思义,代码为先。首先编写完相关的实体类及DbContext派生类,然后通过映射关系自动在数据库中完成数据库表的创建。

  本例中创建一个班级和学生的管理,主要有班级类MyClass和学生类Student。其中班级类MyClass中可包含多名学生Student,两者之间是一对多的引用关系。

一、环境准备

1.开发环境:.NET Core 3.1

2.IDE工具:Visual Studio 2019

3.数据库:SQL Server 2012

二、添加包引用

需要以下包的引用:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Design

可通过dotnet cli命令行或VS的nuget包管理器实现相关包的添加。此处以dotnet cli命令行添加Design包为例。在项目根目录打开命令行,执行dotnet add package {要引用的包}即可。

三、编程程序代码

1.实体类代码

2.DbContext派生类代码

一、创建迁移并更新数据库

1.通过命令行方式,在项目根目录执行命令:dotnet ef migrations add Test,创建名为Test的迁移任务;

  命令执行成功后,在项目中会自动产生一个Migrations文件夹,其中自动生成的CSharp代码文件就是用于更新数据库的。

2.继续执行命令:dotnet ef database update,根据项目中的实体映射关系,更新数据库(包括表结构、表直接的关系)。

【注】一个项目中如果有多个DbContext,迁移会报“build failed”错误。

【注】在开发过程中,如果实体模型类又发生了变动(如增加字段、修改字段、删除字段等),可以重新创建一个迁移,并执行迁移即可。

最新文章

  1. mac版本cornerstone的无限期破解方法【转】
  2. 写Java也得了解CPU--伪共享
  3. 快速入门:十分钟学会Python
  4. 咏南WEB开发框架(FOR XE10.1 BERLIN)
  5. RHEL 6.0使用CentOS yum源
  6. 菜菜菜鸟学习之JavaWeb 入门1(自己的学习理解,不对之处请大神们多多指教啊)
  7. Node.js module.exports和exports的区别
  8. JSON 与List转换类封装
  9. nuc970连接jlink进行单步调试的设置
  10. poj 1850 1019 (简单位数dp)
  11. Mybatis实战之TypeHandler高级进阶
  12. setTimeout与setInterval参数之String
  13. __init__class的简单使用/理解
  14. python之正则表达式和re模块一
  15. Kibana登录认证设置
  16. java语言入门
  17. Centos 7 配置邮件发送
  18. Java四类八种数据类型
  19. 查看UUID的方法
  20. C#-WebForm-★★★JQuery知识——DOM操作★★★

热门文章

  1. 012-PHP创建一个多维数组
  2. LCD驱动详解
  3. sql server 2012插入排序后的数据到临时表无效
  4. web.xml的配置过程中也需要注意顺序问题
  5. mapper语句的一些问题,union连表查询和mapper中根据条件不同采用不同语句的查询问题
  6. 《Java面试全解析》1000道面试题大全详解(转)
  7. python接口自动化26-发xml格式post请求《转载》
  8. 九、JavaScript之分号使用,支持一行多语句
  9. 093-PHP数组比较
  10. P 1034 有理数四则运算