【问题标题】:Performing multiple updates in EF在 EF 中执行多次更新
【发布时间】:2013-06-10 14:17:49
【问题描述】:

我目前正在使用 Entity Framework 4.3、Asp.Net 4.0、Sql Server 2008 Web。

我有一个循环遍历 10 到 20 个贷款提供商的方法。每个贷款提供者都有机会竞标贷款 - 如果他们这样做,则循环终止 - 如果没有,他们会继续循环,直到所有贷款提供者都被消耗并返回“无报价”消息。

我想开始记录这些数据 - 只是贷方和客户 ID。因此,对于每个提交应用程序的客户,可能需要执行 1 到 20 个插入操作。我可以将它们保存在一个列表中,然后一次性更新它们。

当我使用 EF 时,我有点担心性能 - 我假设每个添加到上下文中的单独项目都会进行插入。

首先 - 我应该担心性能吗? 其次,我可以使用什么技术来提高这个过程的效率?

提前致谢。

【问题讨论】:

    标签: entity-framework entity-framework-4.3


    【解决方案1】:

    这与实体框架无关。您必须在 SQL 中一次插入一行,这就是 SQL 的工作方式。每个插入都是一个单独的语句。没有办法(除了特殊的批量插入方法,这对于 20 条记录毫无意义)以不同的方式进行。

    现在,是的,您可以在一个请求中插入这 20 条记录,这就是 EF 将要做的。

    我不明白您评论“由于我使用的是 EF,所以我有点担心性能”。在这方面,英孚的表现并不比其他任何东西差。这是一个简单的 20 条记录插入,这里没有什么特别之处,也没有任何可能导致性能问题的复杂性。

    【讨论】:

    • 那很酷 - Sql 是全新的,EF 甚至更新。我读过 EF 并不总是创建最有效的 SQL 语句。
    • @dotnetnoob - EF 是一种工具,就像任何其他工具一样,您可以使用它来低效地做事。您必须了解 sql 以确保您可以手动或使用工具创建高效的 sql。当你告诉它做一些低效的事情时,EF 不能神奇地知道你的意思,因为它只知道你打算这样做。关键是,EF 并不能免除您了解 sql 和查看所使用的 sql 性能的需要。
    猜你喜欢
    • 1970-01-01
    • 2018-08-25
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 2021-06-28
    • 2021-02-15
    相关资源
    最近更新 更多