aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2026-05-06 20:49:19 +0200
committerGitHub <noreply@github.com>2026-05-06 20:49:19 +0200
commit33ed52b8ee25e1fae4763a26337b838dc9782b26 (patch)
treeee68da202f604eef267254ea8c689965098b1c3e /src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs
parentaa96ff42e616ecf5638a8f1e2e8459b94513c528 (diff)
parentd1ab428476f961426841a0561036c59c3b93878e (diff)
Merge branch 'master' into feature/season-provider-id-from-path
Diffstat (limited to 'src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs')
-rw-r--r--src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs b/src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs
new file mode 100644
index 0000000000..2abccd41f0
--- /dev/null
+++ b/src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/LinkedChildConfiguration.cs
@@ -0,0 +1,31 @@
+using Jellyfin.Database.Implementations.Entities;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace Jellyfin.Database.Implementations.ModelConfiguration;
+
+/// <summary>
+/// LinkedChildEntity configuration.
+/// </summary>
+public class LinkedChildConfiguration : IEntityTypeConfiguration<LinkedChildEntity>
+{
+ /// <inheritdoc/>
+ public void Configure(EntityTypeBuilder<LinkedChildEntity> builder)
+ {
+ builder.ToTable("LinkedChildren");
+ builder.HasKey(e => new { e.ParentId, e.ChildId });
+ builder.HasIndex(e => new { e.ParentId, e.SortOrder });
+ builder.HasIndex(e => new { e.ParentId, e.ChildType });
+ builder.HasIndex(e => new { e.ChildId, e.ChildType });
+
+ builder.HasOne(e => e.Parent)
+ .WithMany(e => e.LinkedChildEntities)
+ .HasForeignKey(e => e.ParentId)
+ .OnDelete(DeleteBehavior.NoAction);
+
+ builder.HasOne(e => e.Child)
+ .WithMany(e => e.LinkedChildOfEntities)
+ .HasForeignKey(e => e.ChildId)
+ .OnDelete(DeleteBehavior.NoAction);
+ }
+}