EF Core开发模式之Code First
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”错误。
【注】在开发过程中,如果实体模型类又发生了变动(如增加字段、修改字段、删除字段等),可以重新创建一个迁移,并执行迁移即可。

EF Core开发模式之Code First的更多相关文章
- EF Core创建实体的Code First标准方法
针对关系型数据库,实体之间的关系最常见的就是通过外键关联的一对一.一对多和多对多的关系,新的EF Core通过注释和Fluent API 能够做到接近于数据库通过DML创建模型的效果了.实际上,通过D ...
- ASP.NET Core中使用EF Core(MySql)Code First
⒈添加依赖 MySql.Data.EntityFrameworkCore ⒉在appsettings.json配置文件中配置数据库连接字符串 { "Logging": { &quo ...
- 《ASP.NET MVC4 WEB编程》学习笔记------Entity Framework的Database First、Model First和Code Only三种开发模式
作者:张博出处:http://yilin.cnblogs.com Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发 ...
- 跟我一起学.NetCore之EF Core 实战入门,一看就会
前言 还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层:遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出 ...
- EF3:Entity Framework三种开发模式实现数据访问
前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...
- Entity Framework:三种开发模式实现数据访问
原文地址 http://blog.csdn.net/syaguang2006/article/details/19606715 前言 Entity Framework支持Database First. ...
- Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...
- EF core 性能调优
Entity Framework Core performance tuning – a worked example Last Updated: February 25, 2019 | Create ...
- 【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较
前言 唠嗑一下.都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区.例如,去O,狭义上讲,是去Oracle数据库.但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断地位和需要商 ...
随机推荐
- App与Js交互(三)Android、iOS通用解决方案推荐
https://www.jianshu.com/p/6224f429ce87 window.navigator.userAgent用来区分设备和浏览器 https://blog.csdn.net/li ...
- wav文件与byte互转 C#
//wav转byte public void WavToByte() { Byte[] bs; FileStream fs = new FileStream(@"C:\1.wav" ...
- parameterType和resultType
在MyBatis中,我们通过parameterType完成输入映射(指将值映射到sql语句的占位符中,值的类型与dao层响应方法的参数类型一致),通过resultType完成输出映射(从数据库中输出, ...
- json字符串转java对象,json中字段名称与对象属性名称不一致
json字符串转java对象,json字段名称与对象属性名称不一致可以在对象属性上添加注解@SerializedName解决
- Irecycleview 的初次使用简单介绍(irecycleview 下拉刷新上拉加载)
导包 还得加一个maven地址自己也看一下作者git把有详细解释(自己也要导入recycleview的包) 我的例子下载地址 https://www.lanzous.com/i32yzaj impl ...
- Hadoop数据压缩技术
一.Hadoop数据压缩及其优缺点 1.压缩技术的好处与坏处 好处: 减少存储磁盘空间 降低IO(网络的IO和磁盘的IO) 加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度. 坏处: 由于使用 ...
- Qt编写的项目作品2-控件属性设计器(组态)
一.功能特点 自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个. 拖曳到画布自动生成对应的控件,所见即所得. 右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小 ...
- docker-compose(grafana influxdb) + telegraf 快速搭建简单监控
灵活实现方案: 1: telegraf 为go 语言写得占用内存小 收集主机各项监控数据 定时写入 时序DB influxdb ------------------------&qu ...
- Window Server 2019 配置篇(3)- 建立hyper-v集群并在其上运行win10 pro虚拟机
上次讲到我们的域里有了网关跟DHCP,这次我们要在域中建立hyper-v集群并在其上运行win10 pro虚拟机 那么什么是hyper-v集群呢? 就是两个及两个以上的运行hyper-v服务的服务器建 ...
- java 立方变自身
立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 - 请你计算包括1,8,17在内, ...