我正在停用用户时更新用户安全标记。我可以为这样的用户这样做。
await UserManager.UpdateSecurityStampAsync(userId);
我想从多个用户那里做这个,比如500或者可能是100。 我有什么方法可以批量做到这一点吗?
我正在使用实体框架。
答案 0 :(得分:3)
安全标记是一个随机字符串,对实际值没有重要意义,所以你可以在那里填充新的GUID。
批量执行此操作的最佳方法是执行SQL查询:
update ApplicationUsers set SecurityStamp = NEWID()
您可以根据需要指定where
子句来限制您需要更新的用户,并且您很可能需要将表的名称更改为您在数据库中实际拥有的名称。
有不同的方法来执行此查询 - 您可以使用EF执行此操作:
context.Database.ExecuteSqlCommand("UPDATE ApplicationUsers........");
或者您可以查看已经推荐的EF.Extended库 - 无需深入SQL即可进行批量更新。
答案 1 :(得分:1)
您可以使用实体框架扩展库。这是进行更新的最快方式。扩展库批量更新消除了在修改实体之前检索和加载实体的需要。因此它非常快试试。
他们的文档示例:
//update all tasks with status of 1 to status of 2
context.Tasks
.Where(t => t.StatusId == 1)
.Update(t => new Task { StatusId = 2 });
您可以在此处详细了解:Entity Framework Extended Library