杨中科 .NETCORE EFCORE第七部分 一对一,多对多

一对一

在这里插入图片描述
在这里插入图片描述

一对一关系配置

1、builder.HasOne(o =>o.Delivery).WithOne(d=>d.Order).HasForeignKey(d=>dOrderId);
2、测试插入和获取数据

示例

新建 Order
在这里插入图片描述

新建 Delivery
在这里插入图片描述
DeliveryConfig
在这里插入图片描述
OrderConfig
在这里插入图片描述
执行 迁移命令
在这里插入图片描述
在这里插入图片描述
查看数据库

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

测试数据插入

在这里插入图片描述
在这里插入图片描述
运行查看数据
在这里插入图片描述

在这里插入图片描述

多对多

1、多对多:老师一学生
2、EF Core 5.0开始,才正式支持多对多
3、需要中间表,举例数据

多对多实体

class Student
public long Id { get; set; }
public string Name { get; set;}
public List Teachers { get; set;} = new List();

classTeacher
public long Id { get; set; )
public string Name { get; set;)
public ListStudents { get; set;} = new List();

多对多关系配置

builder.HasMany(s =>s.Teachers).WithMany(t=>t.Students).UsingEntity(j=>j.ToTable(“T_Students_Teachers”));

示例:

新建Student
在这里插入图片描述

添加Teacher
在这里插入图片描述

配置StudentConfig
在这里插入图片描述

配置TeacherConfig

在这里插入图片描述

配置DbContext
在这里插入图片描述
在这里插入图片描述

执行数据库迁移命令

在这里插入图片描述
在这里插入图片描述

生成的数据库 表

Student
在这里插入图片描述

Teacher
在这里插入图片描述

指定的关系表
在这里插入图片描述
在这里插入图片描述

插入数据测试

在这里插入图片描述在这里插入图片描述

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询一下所有的老师,并且列出他们的学生

在这里插入图片描述
运行结果
在这里插入图片描述

基于关系的复杂查询

关系数据查询

1、查询评论中含有“微软”的所有的文章:ctx.Articles.Where(a=>a.Comments.Any(c=>c.Mesage.Contains(“微软”)));
2、查看生成的SOL语句。

示例:
在这里插入图片描述
运行结果 和 sql
在这里插入图片描述

变换形式

1、变换成另一种写法
ctx.Comments.Where(c => c.Message.Contains(“微”)
.Select(c => c.Article).Distinct();
2、查看生成的SQL语句
3、同样效果的代码可能有多种写法,有时候要关注底层的SQL,看哪种方式最好

示例:

在这里插入图片描述

运行结果和sql
在这里插入图片描述
重复情况,
在这里插入图片描述
在这里插入图片描述
解决方式,加上Distinct()排重
在这里插入图片描述

运行结果:
在这里插入图片描述

例子

1、查询“所有由蜗牛快递负责的订单信息力
ctx.Orders.Where(o=>o.Delivery.CompanyName=="蜗牛快递”)

示例:
在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 21:56:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 21:56:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 21:56:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 21:56:02       20 阅读

热门阅读

  1. 深入探讨 Go 语言中的 Map 类型

    2024-01-17 21:56:02       32 阅读
  2. zabbix

    zabbix

    2024-01-17 21:56:02      21 阅读
  3. 微信小程序 - 模板与配置 介绍

    2024-01-17 21:56:02       37 阅读
  4. 【计算机二级考试C语言】C基本语法

    2024-01-17 21:56:02       35 阅读
  5. 第十四届蓝桥杯省赛PythonB组

    2024-01-17 21:56:02       31 阅读
  6. 电脑DIY-显卡

    2024-01-17 21:56:02       37 阅读
  7. 前端每次发版提示用户

    2024-01-17 21:56:02       34 阅读
  8. webassembly003 whisper.cpp的项目结构CMakeLists.txt

    2024-01-17 21:56:02       26 阅读
  9. 初来乍到!做一个个人介绍!

    2024-01-17 21:56:02       35 阅读