3

我更新的用户安全的邮票当用户被停用。我可以为一个这样的用户做到这一点。如何更新批量用户的安全印章? Asp.net身份

await UserManager.UpdateSecurityStampAsync(userId); 

我想要做这种形式的多个用户,像500或100蜜蜂是 有什么办法可以批量做到这一点?

我使用实体框架。

+0

EF是不是很好的批量更新。执行SQL查询可以吗? – trailmax

+0

是的,但不知道我怎么会与SQL每个用户调用UpdateSecurityStampAsync(ID)。 – mfahadi

回答

3

安全邮票是一个随机字符串与实际值的无显著重要性,所以你可以只是把这些东西新GUID那里。

做批量将执行SQL查询

最好的办法:

update ApplicationUsers set SecurityStamp = NEWID() 

根据需要限制你需要更新的用户可以指定where条款,最有可能你需要改变表的名称与您在数据库中实际拥有的名称相同。

有不同的方式来执行这个查询 - 你可以用EF做到这一点:

context.Database.ExecuteSqlCommand("UPDATE ApplicationUsers........"); 

或者你可以看看已经建议EF.Extended库 - 批量更新可以在不浸入SQL。

+0

接受你回答提示的安全邮票只是一个随机字符串':) – mfahadi

+0

@mfahadi高兴它帮助! – trailmax

1

您可以使用实体框架扩展库。其中是做update.Extended库批量更新的最快方法无需检索和修改it.So之前加载的实体是非常fast.Try这一点。从他们的文档

例子:

//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

+1

其实我有调用这个函数为每个用户,你能告诉我怎么能做到这一点。 UserManager.UpdateSecurityStampAsync(用户ID) – mfahadi