diff options
| -rw-r--r-- | HBContext.cs | 9 | ||||
| -rw-r--r-- | Media.cs | 17 | ||||
| -rw-r--r-- | Services/MediaService.cs | 11 |
3 files changed, 22 insertions, 15 deletions
diff --git a/HBContext.cs b/HBContext.cs index 15dad6d..415b745 100644 --- a/HBContext.cs +++ b/HBContext.cs @@ -55,10 +55,15 @@ public class HBContext : DbContext { } }); - // Implicit tags need some special attention to make many<->many - // navigations work for the same object type. + // Some complex relationships cannot be inferred and require + // additional configuration, as seen below. modelBuilder.Entity<TagDefinition>() .HasMany(e => e.ImplicitTags) .WithMany(); + + modelBuilder.Entity<Media>() + .HasOne(m => m.CurrentUploadedFile) + .WithOne() + .HasForeignKey<Media>("CurrentUploadedFileId"); } }
\ No newline at end of file @@ -7,14 +7,15 @@ using System.Net.NetworkInformation; namespace HyperBooru; public class Media : HBObject { - public string Checksum { get; set; } - public string MimeType { get; set; } - public string? ShortDescription { get; set; } - public string? LongDescription { get; set; } - public int Width { get; set; } - public int Height { get; set; } - public virtual OcrData? OcrData { get; set; } - public virtual List<UploadedFile> UploadedFiles { get; set; } = new(); + public string Checksum { get; set; } + public string MimeType { get; set; } + public string? ShortDescription { get; set; } + public string? LongDescription { get; set; } + public int Width { get; set; } + public int Height { get; set; } + public virtual OcrData? OcrData { get; set; } + public virtual UploadedFile? CurrentUploadedFile { get; set; } + public virtual List<UploadedFile> UploadedFiles { get; set; } = new(); public bool IsIngest => Tags .Select(t => t.TagDefinitionId) diff --git a/Services/MediaService.cs b/Services/MediaService.cs index dece811..f814709 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -150,11 +150,12 @@ public class MediaService : IMediaService { .First(td => td.Guid == HBContext.IngestTag); media = new() { - Checksum = hash, - MimeType = mime, - Width = magickImage.Width, - Height = magickImage.Height, - UploadedFiles = new() { + Checksum = hash, + MimeType = mime, + Width = magickImage.Width, + Height = magickImage.Height, + CurrentUploadedFile = fileRecord, + UploadedFiles = new() { fileRecord }, Tags = new() { |
