EF 一对一、一对多、多对多配置语句小记

时间:2021-05-22 11:59:49

数据库实体间的关系无非有这么几种:一对一、一对多、多对多,这些关系在EF框架中分别有不同的创建方式:

1、在"Database First"模式中,这些关系通过SQL语句的方式建立

2、在"Model First"模式中,这些关系很简单,通过设计器就能简单搞定,实体简单的关联和数据库表之间的关联,都由EF框架帮我们生成

3、在"Code First"模式中,这些关系则是通过OnModelCreating()来实现,也就是通过代码的方式来实现

本文主要分析"CodeFirst"中上面这些关系的建立.上述的对应关系,"Code First"在实体定义关系上有一下约定:

 

一、一对一(单向)

在Code First中,一对一关系,是要通过代码来配置(当然不只是一对一关系,所有的约束,关系,都需要通过代码来配置),通过代码配置的方式有两种,一种是在OnModelCreating方法中配置即FluentAPI中配置,另一种是DataAnnotations直接在实体类上面设置即特性标签.

应用场景:给系统中的每个用户维护一条照片信息,因为照片中会存储照片的二进制信息,所以照片表必须独立出来,所以这就产生了一对一的关系,而且是单向一对一,因为每个用户只有一条照片信息.类图如下:

EF 一对一、一对多、多对多配置语句小记

数据库结构如下:

PhotoInfos

 

Users

EF 一对一、一对多、多对多配置语句小记

 

ok,开始编写代码