【问题标题】:MS EF 4 and SPROCMS EF 4 和 SPROC
【发布时间】:2010-09-01 09:31:14
【问题描述】:

我查看了 MS 的 EF 4(实体框架)。

我了解它用于将层逻辑分离为 DAL。

在 EF 4 中,我看到可以创建用于查询数据库的代码,查询存储在 DAL 中。

我的问题是使用带有 EF 4 的 SPROC 有什么好处?

对我来说,从 EF 4 调用 SPROC 似乎没有保持层之间的明确划分。

关于 EF 4 和 SPROC 最佳实践主题的任何“陷阱”?

感谢大家一直以来的大力支持!

【问题讨论】:

    标签: asp.net database entity-framework entity-framework-4


    【解决方案1】:

    您可能希望将 EF 与存储过程一起使用的原因有几个。首先,您公司的 DBA 可能需要所有存储过程(当然,这是一个不同的争论,但不幸的是,有时您别无选择) - 在这种情况下,使用带有存储过程的 EF 仍然允许您使用丰富的映射框架并拯救自己从编写大量代码将列连接到属性。

    此外,像 EF 这样的 ORM 非常适合对典型的 CRUD 操作进行建模。但是,您可能有一个非常复杂的查询,其中使用直接 SQL 进行建模比使用 EF 查询更容易。在这种情况下,存储过程也是可取的(并且您仍在利用 EF 映射功能)。

    【讨论】:

    • 嗨,史蒂夫,感谢您的评论,您知道 EF 4 是否具有针对 SQL INJECTION 的功能吗?谢谢
    • 是的,EF 会通过内部参数化 SQL 中的变量来自动防范 SQL 注入。
    • 对不起史蒂夫,我可以再问一个问题吗?关于查询的性能和缓存... EF 4 可以缓存查询(esql)???谢谢:-)
    • 是的。另外,SQL Server 也会缓存查询计划。查看 EF 性能:msdn.microsoft.com/en-us/library/cc853327.aspx
    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多