Use a HashSet for existing items

Makes the test O(log n)
This commit is contained in:
Marc Brooks
2026-08-04 05:27:25 -05:00
parent cd5962df50
commit 234a49903b
@@ -257,14 +257,14 @@ public class ItemPersistenceService : IItemPersistenceService
using var transaction = context.Database.BeginTransaction();
var ids = tuples.Select(f => f.Item.Id).ToArray();
var existingItems = context.BaseItems.Where(e => ids.Contains(e.Id)).Select(f => f.Id).ToArray();
var existingItems = context.BaseItems.Where(e => ids.Contains(e.Id)).Select(f => f.Id).ToHashSet();
foreach (var item in tuples)
{
var entity = BaseItemMapper.Map(item.Item, _appHost);
entity.TopParentId = item.TopParent?.Id;
if (!existingItems.Any(e => e == entity.Id))
if (!existingItems.Contains(entity.Id))
{
context.BaseItems.Add(entity);
}