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