使用网络更新多条记录 api
Update multiple records using web api
今天面试的时候被问到这种问题
假设您想使用网络同时更新多条记录api,那么您该怎么做。
因为要更新大约 1000 条记录..
所以我回复暂时使用 async 和 await。
然后他问我如果用户 1 更新记录,同时用户 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?
Its call "concurrency"
, To handle this kind so scneario you have to use locking mechanism
for handling concurrency (updating same record from different user)
so that user may understand that other
user is modifying this as well.
Asp.net Entity Framework Aspect:
在asp.net Entity framework
有
RowVersion
属性 将跟踪特定数据的更新日志
什么时候更新。
您可以使用两种并发机制:
你可以看看official document
更多细节。另外here is the implementations
Database Aspect:
From database you can also handle this scenario. All the database also
has Locking mechanism
to work on same records simultaneously by
multipole user. You can have a look here
希望它能为您提供相应的指导并消除您的困惑。
Entity framework 不是为批量更新而设计的 - 它是为查询和事务更新(一次几条记录)而设计的。
如果您需要批量更新数据,那么要么编写一个 SQL 语句来执行所有更新,要么使用 SSIS 等 ETL 工具。所以,raw SQL 比 Entity framework 快。话虽如此,对于不查询十亿行的普通 CRUD,EF 完全没问题,但在处理大量数据时,用存储过程替换 EF 调用是一个不错的选择。
今天面试的时候被问到这种问题
假设您想使用网络同时更新多条记录api,那么您该怎么做。
因为要更新大约 1000 条记录..
所以我回复暂时使用 async 和 await。
然后他问我如果用户 1 更新记录,同时用户 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?
Its call
"concurrency"
, To handle this kind so scneario you have to uselocking mechanism
for handling concurrency(updating same record from different user)
so that user may understand that other user is modifying this as well.
Asp.net Entity Framework Aspect:
在asp.net Entity framework
有
RowVersion
属性 将跟踪特定数据的更新日志
什么时候更新。
您可以使用两种并发机制:
你可以看看official document
更多细节。另外here is the implementations
Database Aspect:
From database you can also handle this scenario. All the database also has
Locking mechanism
to work on same records simultaneously by multipole user. You can have a look here
希望它能为您提供相应的指导并消除您的困惑。
Entity framework 不是为批量更新而设计的 - 它是为查询和事务更新(一次几条记录)而设计的。
如果您需要批量更新数据,那么要么编写一个 SQL 语句来执行所有更新,要么使用 SSIS 等 ETL 工具。所以,raw SQL 比 Entity framework 快。话虽如此,对于不查询十亿行的普通 CRUD,EF 完全没问题,但在处理大量数据时,用存储过程替换 EF 调用是一个不错的选择。