实体框架与存储过程

时间:2011-07-25 00:38:38

标签: asp.net asp.net-mvc entity-framework

我只是从Entity Framework开始,我很欣赏代码直接映射到我的数据库中的表。我还没有看到的是必须在存储过程中使用EF的实用性,我将很感激任何人对此的看法。我不是很懒,我现在正在自己搜索。以为我可以发布问题并听取其他人的意见。

我的情况是EF是一个ORM最适合在我的数据库中的表中映射。但是在实时Web服务器中,许多请求可能同时发生,与仅仅执行已经预编译的存储过程相比,在执行它们之前必须编译文本查询可能会对数据库造成负担。 EF也可以映射到SP,但我觉得这有点削弱了ORM的价值。

在这种情况下,我真的很感激大开眼界。

3 个答案:

答案 0 :(得分:3)

您可能会发现Jeff对该主题的评论很有帮助:http://www.codinghorror.com/blog/2005/05/stored-procedures-vs-ad-hoc-sql.html

他的观点基本上是存储过程可以看作是一种过早的优化,你真的应该确保这是你的应用程序中的性能瓶颈然后才能走这条路线。例如,有一些框架可用于模拟1000个同步Web请求,以查看数据库在一种情况下真正在负载下执行的方式与另一种情况相比。

答案 1 :(得分:2)

仅仅因为EF没有使用sprocs,这并不意味着它运行的参数化查询不会被编译和缓存。多年来,SQL Server已经变得更加聪明了。

答案 2 :(得分:1)

一种可能的方法: - 单个对象的动态sql - 参数化列表和订单的SP

ORM的值通常是创建对象模型的简单性。这里描述了一种方法:http://www.codeproject.com/Articles/362034/Populating-a-business-logical-layer-from-stored-pr