efcore 6.0 从属实体

本文介绍了EFCore 6.0中从属实体的概念,包括普通从属实体(与主实体映射同一张数据表)和映射独立数据表的从属实体。通过示例详细阐述了如何配置从属实体,特别是在Fluent API中的映射字段名设置以及外键的处理。最后总结了一对一从属实体与映射独立表的区别。
摘要由CSDN通过智能技术生成

注意:本文描述的是一对一的从属实体(一对多也差不多,只是略有差别,具体可参见MSDN中的EFCORE6.0的文章),也就是一行对应一行。

概念

  1. 普通从属实体
    就是多个实体类型映射1个数据库表,每个实体包含不同的字段属性。
    例如:一张表不重要的字段太多,并不是每次查询都需要那么多字段,如果按照常规一个实体类映射一张表,那么每次都要处理那么多字段太麻烦,所以干脆分成两个实体,一个实体包含重要字段,另一个实体包含其他字段作为从属实体即可。
  2. 映射独立数据表的从属实体
    从属实体也可以单独映射另一张数据库表 ,这种场景也是较常见的,
    例如:已经在使用的数据库表,你只是想要自定义增加一些扩展字段,而且不便在原表上增加字段。这时候就需要新增一张新表,那么这个新增表就可以作为从属实体进行映射。

普通从属实体(与主实体映射同一张数据表)

做法很简单,例如如下数据库表:
表名:Person

id name age sex createTime updateTime
1 张三 20 2020-01-01 2022-01-02
2 李四 21 2018-12-22 2022-04-02
3 韩梅梅 23 2021-03-11 2021-03-12
4 lucy 24 2019-03-15 2022-11-22
5 lily 24 2021-11-6 2022-03-26

假设,灰色部分createTime、updateTime俩字段为不常用字段,那么可以分成两个实体进行映射。
主实体类代码:

 public  class Person
    {
   
        public int ID {
    get; set; } 
        public string? name {
    get; set; }  
        public int age {
    get; set; }  
        public string? sex {
    get; set; }  
    
      //新建一个导航属性,类型名即是【从属实体类名】,本例为:PersonOthers
       public PersonOthers personOthers1 {
    get; set; }   
    }

从属实体类代码:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值