using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using WCTDataMiner.Core.Models; namespace WCTDataMiner.Core.Data.Configurations; public class TxHardwareConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("tx_hardware"); builder.HasKey(e => e.Id); builder.Property(e => e.Id).HasColumnName("id"); builder.Property(e => e.Version) .IsRequired() .HasMaxLength(50) .HasColumnName("version"); builder.Property(e => e.IsDeleted) .IsRequired() .HasDefaultValue(false) .HasColumnName("is_deleted"); builder.Property(e => e.CreatedAt) .IsRequired() .HasDefaultValueSql("datetime('now')") .HasColumnName("created_at"); builder.HasIndex(e => e.Version).IsUnique(); // 全局查询过滤器 builder.HasQueryFilter(e => !e.IsDeleted); } }