EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它

简介:

对于Dapper是一个轻量级的数据访问框架,而需要使用者去自己做SQL,它,只是一个数据访问者!

对些,Dapper推出了Contrib扩展包,它可以友好的让开发人员使用linq,而不需要写SQL,但在使用时要注意,你的增,删,改,单表查询是可以用它的,但对于多表的join操作就不要用了,因为它不会像linq2sql和ef那样进行牛X的翻译,它会将select * from tables这种语句发到数据库,结果可想而知!

相同的代码dapper和ef发到数据库是截然不同的:

dapper这样发过去的

而通过EF做多表Join时,被发到数据库端的语句是

最后结论,我想不用我再重复了吧!

记得,不要用Dapper.contrib做Linq join操作!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
24天前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
239 2
|
26天前
|
消息中间件 存储 数据库
微服务架构下的数据库设计策略
【6月更文挑战第30天】在分布式系统和微服务架构的浪潮中,传统的单一数据库模式已不再适应快速迭代和高并发的需求。本文将深入探讨在微服务环境下如何进行有效的数据库设计,包括数据一致性、可伸缩性以及安全性等方面的考量。通过分析不同的数据存储方案和同步策略,我们将为后端开发者提供一套实用且高效的数据库设计方案。
19 1
|
5天前
|
消息中间件 缓存 架构师
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
|
28天前
|
SQL 存储 运维
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
随着网易游戏品类及产品的快速发展,游戏数据分析场景面临着越来越多的挑战,为了保证系统性能和 SLA,要求引入新的组件来解决特定业务场景问题。为此,网易游戏引入 Apache Doris 构建了全新的湖仓一体架构。经过不断地扩张,目前已发展至十余集群、为内部上百个项目提供了稳定可靠的数据服务、日均查询量数百万次,整体查询性能得到 10-20 倍提升。
网易游戏如何基于阿里云瑶池数据库 SelectDB 内核 Apache Doris 构建全新湖仓一体架构
|
24天前
|
SQL 中间件 关系型数据库
MyCAT数据库中间件的架构与使用方法
MyCAT数据库中间件的架构与使用方法
|
24天前
|
安全 数据库 数据安全/隐私保护
探索微服务架构下的数据库设计策略
在微服务架构下,数据库设计是实现高效、可扩展和易于维护的关键因素之一。本文将深入探讨在微服务架构中如何进行有效的数据库设计,包括数据一致性的保障、数据库性能优化以及安全性考量。通过引用最新的科研研究、实验证据和权威统计数据,结合逻辑严密的分析,本文旨在为后端开发者提供一套科学严谨的数据库设计策略指南。
15 0
|
28天前
|
网络协议 安全 分布式数据库
技术分享:分布式数据库DNS服务器的架构思路
技术分享:分布式数据库DNS服务器的架构思路
21 0
|
1月前
|
存储 SQL Oracle
主流关系型数据库存储架构层的差异分析
主流关系型数据库存储架构层的差异分析
|
1月前
|
NoSQL Java 数据库
优化基于阿里云的微服务架构下的数据库访问性能
在应对大型电商项目中数据库访问性能瓶颈问题时,团队通过阿里云工具分析发现高QPS、慢查询和不合理数据交互是关键。优化措施包括:1) 索引优化,针对慢查询添加或调整索引;2) 开启读写分离,使用RDS读写分离功能和DRDS进行水平拆分;3) 引入Redis缓存热点数据,减少直接数据库访问;4) 服务化数据访问,降低跨服务数据库调用;5) 使用Sentinel进行限流和熔断,保护数据库资源。这些改进显著提升了系统响应速度和用户体验。