Fix indices and update of ItemValues (#13843)

This commit is contained in:
Tim Eisele 2025-04-05 17:57:58 +02:00 committed by GitHub
parent 2264d58ae7
commit 0e7ae0e9a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 1747 additions and 3 deletions

View File

@ -535,7 +535,7 @@ public sealed class BaseItemRepository
if (!localItemValueCache.TryGetValue(itemValue, out var refValue))
{
refValue = context.ItemValues
.Where(f => f.CleanValue == GetCleanValue(itemValue.Value) && (int)f.Type == itemValue.MagicNumber)
.Where(f => f.Value == itemValue.Value && (int)f.Type == itemValue.MagicNumber)
.Select(e => e.ItemValueId)
.FirstOrDefault();
}

View File

@ -13,6 +13,7 @@ public class ItemValuesConfiguration : IEntityTypeConfiguration<ItemValue>
public void Configure(EntityTypeBuilder<ItemValue> builder)
{
builder.HasKey(e => e.ItemValueId);
builder.HasIndex(e => new { e.Type, e.CleanValue }).IsUnique();
builder.HasIndex(e => new { e.Type, e.CleanValue });
builder.HasIndex(e => new { e.Type, e.Value }).IsUnique();
}
}

View File

@ -0,0 +1,47 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Jellyfin.Server.Implementations.Migrations
{
/// <inheritdoc />
public partial class FixItemValuesIndices : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_ItemValues_Type_CleanValue",
table: "ItemValues");
migrationBuilder.CreateIndex(
name: "IX_ItemValues_Type_CleanValue",
table: "ItemValues",
columns: new[] { "Type", "CleanValue" });
migrationBuilder.CreateIndex(
name: "IX_ItemValues_Type_Value",
table: "ItemValues",
columns: new[] { "Type", "Value" },
unique: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_ItemValues_Type_CleanValue",
table: "ItemValues");
migrationBuilder.DropIndex(
name: "IX_ItemValues_Type_Value",
table: "ItemValues");
migrationBuilder.CreateIndex(
name: "IX_ItemValues_Type_CleanValue",
table: "ItemValues",
columns: new[] { "Type", "CleanValue" },
unique: true);
}
}
}

View File

@ -722,7 +722,9 @@ namespace Jellyfin.Server.Implementations.Migrations
b.HasKey("ItemValueId");
b.HasIndex("Type", "CleanValue")
b.HasIndex("Type", "CleanValue");
b.HasIndex("Type", "Value")
.IsUnique();
b.ToTable("ItemValues");