是否使用存储过程与实体框架?

时间:2010-12-28 10:44:05

标签: entity-framework stored-procedures linq-to-entities

我想知道,我是使用存储过程与Entity Framework还是只是用户Linq-to-Entities查询?

考虑我想要客户的订单。因此,通过使用在两个表上使用连接的存储过程实现了一个解决方案,例如返回订单ID。

使用Linq-to-Entities查询实现的另一个解决方案。此解决方案优先于第一个解决方案,也就是说,我们可以使用用户导航属性轻松移动客户订单信息。但是在存储过程中,因为它只返回ID,所以它可以访问订单信息。

考虑到第二种解决方案偏好,哪个更好?

1 个答案:

答案 0 :(得分:3)

两种解决方案都有效 - 而且由于您没有定义“更好”对您意味着什么,我们无法告诉您哪种解决方案“更好”。

使用存储过程与Entity Framework绝对是可能的 - 特别是对于EF4。存储过程有其好处 - 您不必为用户提供直接表访问权限,您可以让DBA调整那些存储过程以获得最佳性能,您可以通过调用a来删除Customer。使用CustomerID删除存储过程(而不是必须首先加载整个客户,只是为了删除它)。

所以存储过程肯定有好处 - 许多人的缺点是他们必须用T-SQL编写它们,现在突然部分应用程序在你的C#代码中,而另一部分则在存储过程的T-SQL中代码。

再说一遍:你问的模糊不清,对此没有真正好的答案。这两种方法都是有效的,并且都有效 - 这是个人偏好,你想要使用它。