EFCore数据的增删改查
一.数据的插入(把数据插入到Dogs表)
添加数据在Program.cs中操作
2.查询数据(查询时就不需要 await ctx.SaveChangesAsync();这个语句了),在Main方法中执行即可
用single语句查询
3.修改数据
修改数据和删除数据,都要分2步,第一步就是把数据查出来,然后在修改或者删除
4.删除数据
二.EFCore的实体类配置
1.作为ORM框架,EFCore要完成实体类对象和数据库中数据关系的映射,也就是实体类与数据库表的映射,以及实体类的属性与数据库表的列的映射。
2.约定大于配置
EFCore中也是采用约定大于配置的原则,EFCore会默认按照约定根据实体类以及DbContext的定义类实现和数据库表的映射配置,除非我们显示指定了配置规则,比如上一篇的ToTable("T_Books")
EFCore中的默认的规则约定有很多,这里只列出一些主要的约定规则
1.数据库表名采用上下文类中对应的DbSet的属性名
2.数据库表列的名字采用实体类属性的名字,列的数据类型采用和实体类属性类型兼容的类型
3.数据可表列的可空性取决于对应实体类的属性的可空性。EFCore6中支持C#中的可空引用类型
4.名字为Id的属性为主键,如果主键为short,int或者long类型,则主键默认采用自动增长类型的列
三.Data Annotation和Fluent API
Data Annotation通过注释的方式来实现实体类的配置eg[Table("T_Books")]把实体类对应的表名设置为T_Books。[Required]是把属性对应的数据库表列配置为不可空
Fluent API能够进行很好的分离他是在配置文件中写
四.Fluent API有很多配置这里只举例索引
在配置文件里编写
然后在程序包管理控制台中输入
1.Add-Migration AddIndexToBook(自定义有意义的名字)
2.Update-Database