feat: Implementiere kaskadierende Löschung für die User-Entität im UserRepository
- Überriding der DeleteAsync-Methode hinzugefügt, um verwandte ModuleOfUser- und GroupOfUser-Entitäten zu behandeln. - Sicherstellung der Entfernung verwandter Datensätze bei der Löschung eines Benutzers. - TODO-Kommentar hinzugefügt, um zu empfehlen, .OnDelete(DeleteBehavior.ClientCascade) im DbContext für ein verbessertes Verhalten zu verwenden.
This commit is contained in:
@@ -44,5 +44,19 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
|
||||
{
|
||||
return await _dbSet.Where(user => user.Username == username).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
//TODO: instead of this implmenet .OnDelete(DeleteBehavior.ClientCascade) in DbContext
|
||||
public override async Task<bool> DeleteAsync(User user)
|
||||
{
|
||||
IEnumerable<ModuleOfUser> mou = await _moduleOfUserRepo.ReadByUserAsync(user.Username);
|
||||
if(mou.Any())
|
||||
_dbContext.RemoveRange(mou);
|
||||
|
||||
IEnumerable<GroupOfUser> gou = await _groupOfUserRepo.ReadByUsernameAsync(user.Username);
|
||||
if(gou.Any())
|
||||
_dbContext.RemoveRange(gou);
|
||||
|
||||
return await base.DeleteAsync(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user