mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
attempted to fix multi insert for Itemvalues
This commit is contained in:
parent
b60cd378d9
commit
30ba35aa0c
@ -373,6 +373,8 @@ public sealed class BaseItemRepository(
|
||||
tuples[i] = (item, ancestorIds, topParent, userdataKey, inheritedTags);
|
||||
}
|
||||
|
||||
var localFuckingItemValueCache = new Dictionary<(int MagicNumber, string Value), Guid>();
|
||||
|
||||
using var context = dbProvider.CreateDbContext();
|
||||
using var transaction = context.Database.BeginTransaction();
|
||||
foreach (var item in tuples)
|
||||
@ -416,10 +418,14 @@ public sealed class BaseItemRepository(
|
||||
context.ItemValuesMap.Where(e => e.ItemId == entity.Id).ExecuteDelete();
|
||||
foreach (var itemValue in itemValuesToSave)
|
||||
{
|
||||
var refValue = context.ItemValues
|
||||
.Where(f => f.CleanValue == GetCleanValue(itemValue.Value) && (int)f.Type == itemValue.MagicNumber)
|
||||
.Select(e => e.ItemValueId)
|
||||
.FirstOrDefault();
|
||||
if (!localFuckingItemValueCache.TryGetValue(itemValue, out var refValue))
|
||||
{
|
||||
refValue = context.ItemValues
|
||||
.Where(f => f.CleanValue == GetCleanValue(itemValue.Value) && (int)f.Type == itemValue.MagicNumber)
|
||||
.Select(e => e.ItemValueId)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
if (refValue.IsEmpty())
|
||||
{
|
||||
context.ItemValues.Add(new ItemValue()
|
||||
@ -429,6 +435,7 @@ public sealed class BaseItemRepository(
|
||||
ItemValueId = refValue = Guid.NewGuid(),
|
||||
Value = itemValue.Value
|
||||
});
|
||||
localFuckingItemValueCache[itemValue] = refValue;
|
||||
}
|
||||
|
||||
context.ItemValuesMap.Add(new ItemValueMap()
|
||||
|
Loading…
x
Reference in New Issue
Block a user