【问题标题】:Updating many DbSet objects at one time一次更新多个 DbSet 对象
【发布时间】:2015-04-01 03:37:00
【问题描述】:

我正在编写一个 MVC 5 互联网应用程序并使用 Entity Framework 6。我有一个可以在许多 Image 对象中引用的 Asset 对象。

当我编辑 Asset 对象时,我需要更新存储在所有引用的 Image 对象中的 DateTime 对象。如果有 50 个 Image 对象需要更新,我是否可以在一个数据库事务中执行此操作,而不是检索 Image 对象,遍历每个 Image 对象,更新 DateTime 对象,然后更新数据库中的每个 Image 对象?

提前致谢。

【问题讨论】:

    标签: c# asp.net-mvc-5 entity-framework-6 crud dbset


    【解决方案1】:

    据我所知,如果您循环并更新每个,但在循环之后调用 context.saveChanges(),它应该在一个事务中提交,因为在调用 saveChanges 之前事务不会完成。

    【讨论】:

    • 如何检查是否是这种情况?
    • 您可以打开 SQL 管理工作室连接到您的数据库,然后转到工具>sql server profiler。这将显示所有数据库事务,如果在循环后只执行一个,那么您应该只看到一个。在 break 那里调试到 saveChanges 行。当您踩到时,您应该会在分析器中看到该事务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多