using JSMR.Domain.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace JSMR.Infrastructure.Data.Configuration; public sealed class VoiceWorkSearchConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("voice_work_searches"); builder.HasKey(x => x.VoiceWorkId); // also the FK builder.Property(x => x.SearchText).IsRequired(); // TEXT/LONGTEXT builder.HasOne(x => x.VoiceWork) .WithOne() // not navigated from VoiceWork in your model .HasForeignKey(x => x.VoiceWorkId) .OnDelete(DeleteBehavior.Cascade); // MariaDB/MySQL (Pomelo) fulltext (BOOLEAN/NATURAL) — create an FT index // Pomelo supports .HasMethod("FULLTEXT"). If your version doesn't, add it in a migration SQL. //builder.HasIndex(x => x.SearchText) // .HasDatabaseName("FT_SearchText") // .HasMethod("FULLTEXT"); } }