【问题标题】:使用 web api 更新多条记录
【发布时间】:2022-01-23 13:18:44
【问题描述】:

今天面试被问到这样的问题。

假设您想使用 web api 同时更新多条记录,那么您如何做到这一点。

因为它有大约 1000 条记录要更新..

所以我现在回复使用 async 并等待。

然后他问我是否用户 1 更新记录和同时用户 2 更新记录,哪个会采取行动以及这种情况如何处理。

那么对于这类问题,最好的回答应该是什么。

【问题讨论】:

    标签: c# asp.net asp.net-core asp.net-web-api asp.net-web-api2


    【解决方案1】:

    实体框架不是为大规模更新而设计的——它是为查询和事务更新(一次几条记录)而设计的。

    如果您需要大规模更新数据,则可以编写一个 SQL 语句来执行所有更新,或者使用 SSIS 等 ETL 工具。因此,原始 SQL 比实体框架更快。话虽如此,对于不查询十亿行的普通 CRUD,EF 完全没问题,但是在处理大量数据时,用存储过程替换 EF 调用是一个不错的选择。

    【讨论】:

      【解决方案2】:

      Question: If user 1 update record and same time user 2 update record so which will take action and how this scenario can handle?

      它的电话"concurrency",要处理这种情况,你必须使用locking mechanism 用于处理并发 (updating same record from different user) 以便用户可以理解其他 用户也在修改它。

      Asp.net Entity Framework Aspect:

      asp.net Entity framework 中有 RowVersion 属性将跟踪特定数据的更新日志 什么时候更新。

      您可以使用的两种并发机制:

      你可以看看official document 更多细节。另外here is the implementations

      Database Aspect:

      您也可以从数据库中处理这种情况。所有的数据库也 有Locking mechanism 同时处理相同的记录 多极用户。 You can have a look here

      希望它能相应地指导您并消除您的困惑。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        • 2019-02-18
        • 2016-05-01
        • 2013-05-02
        • 2014-03-04
        • 1970-01-01
        相关资源
        最近更新 更多