关于EntityFramework(EntityFrameworkCore)的一些思考
以下EntityFramework简称EF。
Asp.net框架里里提供了一种将数据库语言直接糅合到程序语言C#中的方法:利用EF NuGet包,正确设置connection string之后可以直接以C#语言(大部分是Linq)来直接对数据库访问。这种方式省却了许多手动设置SQL语句、拼合字符串的时间,但笔者在最开始学习和尝试使用EF的时候却时常感觉到一知半解,因为EF功能强大,所以需要学习的内容特别多。
YouTuber iamtimcorey (Tim Corey) 在他的视频中提出了他的观点 —— 不建议使用EF,因为将一个自己不是特别理解的东西放在生产空间是十分危险的,尤其是当团队里所有人都对其理解不够深,它很容易成为一颗大雷。
另外,Tim也在他的教学系列中展开阐述了EF的问题,其阐述的方式也是十分的独到,直接从优势开始讲起,然后击溃其优势 ——
人们常常提到的EF的优势有两点:
快速开发
无需学习SQL语言
但这两点看似是EF的优势,其实在真正的生产环境中时常不攻自破:
- 快速开发
- 使用EF+程序语言生成的SQL若不进行优化在执行效率上是比较低的,这就导致了虽然“开发”比较快,但是在投入到生产环境之前,需要花费较长的时间对其进行优化,其优势并不明显
- 无需学习SQL语言
</
- 与上一条相呼应的,如果不懂得SQL语言的执行逻辑,何谈优化?
- 虽然Linq语言与SQL不尽相同,但其背后的思想是相通的,在学习Linq的同时其实本质上也是在学习SQL语言

本文探讨了在使用Entity Framework时遇到的理解难题和生产环境中的效率问题,作者通过个人经历和Tim Corey的观点,强调了对SQL理解的重要性,并转向手动数据访问方式Dapper,以确保数据控制和安全性。
最低0.47元/天 解锁文章
1731

被折叠的 条评论
为什么被折叠?



