【杂谈】关于EntityFramework(EntityFrameworkCore)的一些思考

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

关于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语言
    </
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值