001 创建一个控制台EFCore应用

1. 创建一个Asp.net core 类型的Console项目

 

File -- new -- project --console application

 

2. 添加类库支持

 

使用Nuget工具搜索Microsoft.EntityFrameworkCore.SqlServer类库进行安装。

 

3. 添加数据库(当前操作省略,后续详细介绍)

 

a 让EF Core为你创建数据库---Code First模式

b 从外来的已经创建好的数据库进行操作---Database First模式

 

4. 数据库简介

001 创建一个控制台EFCore应用_第1张图片

本次使用的数据库非常简单:

Books代表书籍表,包含主键BookId,还有其他字段:Title(标题),Description(描述),PublishedOn(发布时间),外键:AuthorId(作者id)

Author代表作者表,包含 主键AuthorId,其他字段Name(名称),WebUrl(个人主页)

 

表格的初始化内容如下:

001 创建一个控制台EFCore应用_第2张图片

 

5. 准备工作(1)

 

在正式操作数据库之前,你需要建立两方面的准备工作:

a 操作数据表的C#类

b DbContext类的建立

001 创建一个控制台EFCore应用_第3张图片

EF Core是通过C#类进行映射的,BookId是本表的主键,AuthorId是本表的外键,Author是外键对应的导航属性。

001 创建一个控制台EFCore应用_第4张图片

Author类的主键的名称与Book类的外键名称保持一致,当然,后续还会有代码或者注解的方法补充这一问题。

 

6.准备工作(2)

 

001 创建一个控制台EFCore应用_第5张图片

任何数据库上下文都需要继承自Dbcontext类,重写OnConfiguring方法

DbSet Books对应的就是Books数据表的映射。

 

7. 查询数据

 

001 创建一个控制台EFCore应用_第6张图片

AsNoTracking表示这是一个只读操作,这样可以优化EF Core的操作。

Include是显式的告诉EF Core,我需要加载导航属性,你帮我加载进来。

这个懒加载其实是EF Core帮你做了连表查询:

001 创建一个控制台EFCore应用_第7张图片

 

8. 更新数据

 

001 创建一个控制台EFCore应用_第8张图片

Include显式加载Author,Single表示只查询唯一的那条记录。

怎么更新数据呢?直接修改查询到的book对象的属性即可。

别忘啦db.SaveChanges();他告诉EFCore我已经修改完毕了,你存储一下吧!

在进行存储的时候,也就是saveChanges的时候,EFCore会帮助我们开启一个数据库事务,如果所有的写入操作都是没有问题的,那么数据库事务就会正常提交,否则,则会自动回滚,并抛出异常信息。

你可能感兴趣的:(EntityFramework,Core)