![]()
EF Core 10上个月正式发布,大多数开发者还在研究LEFT JOIN怎么用,另一群人已经发现了一条更快的路。表拆分(Table Splitting)不是新功能,但EF Core 10把它从"能用"变成了"好用"——官方文档甚至没把它放进首页推荐。
这功能干的事很简单:把一张数据库表映射成多个实体类,查询时自动合并,不需要手写JOIN。听起来像懒加载的亲戚?完全相反。懒加载是"假装没查,用时再补",表拆分是"一次查完,拆成对象",省的是往返数据库的趟数。
一位.NET工程师在GitHub issue里吐槽了真相:「我三年前就想要这个,当时得写一堆HasOne配置,现在一行代码搞定。」EF Core 10把配置简化了,还补上了之前缺失的变更追踪支持——这意味着拆出来的实体可以各自更新,EF会自动拼回正确的SQL。
性能数据来自微软自家的基准测试:典型场景下查询延迟降低40%,内存占用反而更少。原理不复杂,以前查宽表要拖一堆用不上的列,现在按需拆分,只取需要的字段。换句话说,数据库终于不用当搬运工了。
代价也有。表拆分要求主键完全一致,外键关系必须显式配置,报错信息还写得像谜语。有开发者花了两小时才发现,是因为忘了在拆分实体上标[Required]。微软的回应是更新了文档示例,但错误提示至今没改。
目前这功能藏在EF Core 10的"高级映射"章节里,搜索排名还不如一篇2019年的Stack Overflow回答。一位MVP在评论区的反馈被点了200多个赞:「好东西藏这么深,是怕我们用坏吗?」
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.