瀏覽代碼

Attach before updating/deleting to avoid DbUpdateConcurrencyException (#14746)

evan314159 5 天之前
父節點
當前提交
4246825239
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      Jellyfin.Server.Implementations/Users/UserManager.cs

+ 3 - 1
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -272,6 +272,7 @@ namespace Jellyfin.Server.Implementations.Users
             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
             await using (dbContext.ConfigureAwait(false))
             await using (dbContext.ConfigureAwait(false))
             {
             {
+                dbContext.Users.Attach(user);
                 dbContext.Users.Remove(user);
                 dbContext.Users.Remove(user);
                 await dbContext.SaveChangesAsync().ConfigureAwait(false);
                 await dbContext.SaveChangesAsync().ConfigureAwait(false);
             }
             }
@@ -887,7 +888,8 @@ namespace Jellyfin.Server.Implementations.Users
 
 
         private async Task UpdateUserInternalAsync(JellyfinDbContext dbContext, User user)
         private async Task UpdateUserInternalAsync(JellyfinDbContext dbContext, User user)
         {
         {
-            dbContext.Users.Update(user);
+            dbContext.Users.Attach(user);
+            dbContext.Entry(user).State = EntityState.Modified;
             _users[user.Id] = user;
             _users[user.Id] = user;
             await dbContext.SaveChangesAsync().ConfigureAwait(false);
             await dbContext.SaveChangesAsync().ConfigureAwait(false);
         }
         }