微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 实体框架是否使用反射和损害性能?

我最终有两个领域,每个领域都有一些关于实体框架的问题,但是让我给出一些背景知识,以便你知道我要求提供这些信息的背景.

在我的工作地点,我的团队正计划完全重写我们的应用程序结构,以便我们能够遵循更现代的标准.这种重写包括一个全新的数据层项目.在这个项目中,大多数团队都想使用Entity Framework.我也想使用它,因为我在个人项目中使用它非常熟悉它.但是,一个团队成员强烈反对这一点,并指出实体框架使用反射并杀死性能.他的另一个论点是EF使用生成sql,其效率远远低于存储过程.我不太熟悉EF的内部工作,我的搜索没有发现任何非常有用的东西.

这是我的问题.我试图让它们尽可能具体.如果您需要澄清,请询问.

问题1问题 – 反思

>对于使用反射和伤害性能的EF,这是真的吗?
> EF在哪里使用反射?
>有没有比较性能的资源?我可以用什么来客观地比较.NET中的数据访问技术,然后将它呈现给我的团队?

问题2问题 – sql

>这有什么影响?
>是否可以使用存储过程来填充EF实体?
>还有一些资源可以将生成查询与存储过程进行比较,以及使用存储过程填充实体(如果可以)的含义是什么?

我自己做了一些搜索,但没有提出太多关于引擎盖下的EF.任何帮助深表感谢.

编辑

这些都是一些非常有用的答案.谢谢.我将暂时搁置这个问题一段时间,以便可以提供一些文章和其他外部资源的硬性参考.也许这个问题将有助于未来的人在我的困境中.

解决方法

是的,它确实像许多其他ORM(NHibernate)和有用的框架(DI工具).例如,没有Reflection,WPF无法工作.

虽然使用Reflection的性能影响在.NET 1.0以来的最近10年中没有发生太大变化(尽管已经有了改进),但随着硬件速度的提高和可读性的普遍趋势,它现在变得越来越不受关注.

请记住,主要的性能影响是在反映aka绑定时将类型元数据读入xxxInfo(例如MethodInfo),这发生在应用程序启动时.

调用反射方法肯定是慢的,但不是一个问题.

UPDATE

我用Reflector来查看EF的源代码,我可以确认它大量使用Reflection.

原文地址:https://www.jb51.cc/csharp/98416.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐