继续ORM-欧德巴赫猜想-Mapping
最近从项目组单离出来开始在公司实施过程化管理,整个QA Office就我一个人,头头是我,兵兵也是我,是我是我,还是我。
没有项目的多座大山压迫有了更多的时间出来思考,尽管会让上帝老人家笑个不停,但是我对此乐此不疲,笑不死他小样地...........
在过程域,过程建模的圈圈套圈圈地密城里转悠造成的后遗症就是最近思维跳耀性太大,于是在看到麦当劳汉堡盒子上的M标记的时候猛然想到了ORM。
所谓ORM,故名思意,O-R 之间最重要的Mapping。
在前一段写到ORM和内存数据库的时候,有个激进的同志扬言最好不要Mapping,让对象尘归尘土归土,对象里来,就对象里去,当然这个想法固然是好的,不过,在规避了Reflectiong的陷阱后,我们又掉进了OO的数据如何检索的问题,IList,没有索引,检索单个对象的全列表扫描问题,检索一个Rang的数据的问题,对象间关系表达的问题,对象间导航的问题,当你避过一个坑之后的,后面还有无数个坑在等着你。
在我看来,适当的Mapping是必要的,没有Mapping也就不成其为ORM,O,R,M里边,毫无疑问的,M反而是最重要的。
第一,Mapping使数据库和应用之间解耦了,从此数据库的变化就不足以威胁整个程序架构,不会引发数据库改变造成的不必要的混乱和质量危机。
第二,程序员来说,数据库应该是透明的,Mapping解决的程序员去操作数据库的问题
第三,通过iBaties的方式,操作和mapping解耦了,半自动化的方式实现了SQL语句的人工优化问题。
之前谈过了LazyLoading的问题,这里发现还真没一个好的实现方案,当然这主要看怎么用了,主取从数据问题多多,从取主问题较少,解决N+1问题就可以了。想了很久,昨晚夜没睡好,作罢,想起了再继续写
没有项目的多座大山压迫有了更多的时间出来思考,尽管会让上帝老人家笑个不停,但是我对此乐此不疲,笑不死他小样地...........
在过程域,过程建模的圈圈套圈圈地密城里转悠造成的后遗症就是最近思维跳耀性太大,于是在看到麦当劳汉堡盒子上的M标记的时候猛然想到了ORM。
所谓ORM,故名思意,O-R 之间最重要的Mapping。
在前一段写到ORM和内存数据库的时候,有个激进的同志扬言最好不要Mapping,让对象尘归尘土归土,对象里来,就对象里去,当然这个想法固然是好的,不过,在规避了Reflectiong的陷阱后,我们又掉进了OO的数据如何检索的问题,IList,没有索引,检索单个对象的全列表扫描问题,检索一个Rang的数据的问题,对象间关系表达的问题,对象间导航的问题,当你避过一个坑之后的,后面还有无数个坑在等着你。
在我看来,适当的Mapping是必要的,没有Mapping也就不成其为ORM,O,R,M里边,毫无疑问的,M反而是最重要的。
第一,Mapping使数据库和应用之间解耦了,从此数据库的变化就不足以威胁整个程序架构,不会引发数据库改变造成的不必要的混乱和质量危机。
第二,程序员来说,数据库应该是透明的,Mapping解决的程序员去操作数据库的问题
第三,通过iBaties的方式,操作和mapping解耦了,半自动化的方式实现了SQL语句的人工优化问题。
之前谈过了LazyLoading的问题,这里发现还真没一个好的实现方案,当然这主要看怎么用了,主取从数据问题多多,从取主问题较少,解决N+1问题就可以了。想了很久,昨晚夜没睡好,作罢,想起了再继续写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述