28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
using JSMR.Domain.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
|
|
namespace JSMR.Infrastructure.Data.Configuration;
|
|
|
|
public sealed class VoiceWorkSearchConfiguration : IEntityTypeConfiguration<VoiceWorkSearch>
|
|
{
|
|
public void Configure(EntityTypeBuilder<VoiceWorkSearch> builder)
|
|
{
|
|
builder.ToTable("VoiceWorkSearches");
|
|
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<VoiceWorkSearch>(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)
|
|
.IsFullText()
|
|
.HasDatabaseName("FT_SearchText");
|
|
//.HasMethod("FULLTEXT");
|
|
}
|
|
} |