c# – 实体框架是否使用反射和损害性能?
我最终有两个领域,每个领域都有一些关于实体框架的问题,但是让我给出一些背景知识,以便你知道我要求提供这些信息的背景.
在我的工作地点,我的团队正计划完全重写我们的应用程序结构,以便我们能够遵循更现代的标准.这种重写包括一个全新的数据层项目.在这个项目中,大多数团队都想使用Entity Framework.我也想使用它,因为我在个人项目中使用它非常熟悉它.但是,一个团队成员强烈反对这一点,并指出实体框架使用反射并杀死性能.他的另一个论点是EF使用生成的SQL,其效率远远低于存储过程.我不太熟悉EF的内部工作,我的搜索没有发现任何非常有用的东西. 这是我的问题.我试图让它们尽可能具体.如果您需要澄清,请询问. 问题1问题 – 反思 >对于使用反射和伤害性能的EF,这是真的吗? 问题2问题 – SQL >这有什么影响? 我自己做了一些搜索,但没有提出太多关于引擎盖下的EF.任何帮助深表感谢. 编辑 这些都是一些非常有用的答案.谢谢.我将暂时搁置这个问题一段时间,以便可以提供一些文章和其他外部资源的硬性参考.也许这个问题将有助于未来的人在我的困境中. 解决方法
是的,它确实像许多其他ORM(NHibernate)和有用的框架(DI工具).例如,没有Reflection,WPF无法工作.
虽然使用Reflection的性能影响在.NET 1.0以来的最近10年中没有发生太大变化(尽管已经有了改进),但随着硬件速度的提高和可读性的普遍趋势,它现在变得越来越不受关注. 请记住,主要的性能影响是在反映aka绑定时将类型元数据读入xxxInfo(例如MethodInfo),这发生在应用程序启动时. 调用反射方法肯定是慢的,但不是一个问题. UPDATE 我用Reflector来查看EF的源代码,我可以确认它大量使用Reflection. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |