< Summary

Information
Class: AsiBackbone.EntityFrameworkCore.Configurations.AsiBackboneAuditLedgerReasonCodeEntityConfiguration
Assembly: AsiBackbone.EntityFrameworkCore
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/Configurations/AsiBackboneAuditLedgerReasonCodeEntityConfiguration.cs
Line coverage
100%
Covered lines: 34
Uncovered lines: 0
Coverable lines: 34
Total lines: 65
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Configure(...)100%11100%

File(s)

/home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/Configurations/AsiBackboneAuditLedgerReasonCodeEntityConfiguration.cs

#LineLine coverage
 1using AsiBackbone.EntityFrameworkCore.Persistence;
 2using Microsoft.EntityFrameworkCore;
 3using Microsoft.EntityFrameworkCore.Metadata.Builders;
 4
 5namespace AsiBackbone.EntityFrameworkCore.Configurations;
 6
 7/// <summary>
 8/// Configures the Entity Framework Core persistence mapping for <see cref="AsiBackboneAuditLedgerReasonCodeEntity" />.
 9/// </summary>
 10public sealed class AsiBackboneAuditLedgerReasonCodeEntityConfiguration
 11    : IEntityTypeConfiguration<AsiBackboneAuditLedgerReasonCodeEntity>
 12{
 13    private const int ReasonCodeMaxLength = 256;
 14    private const int ConcurrencyStampMaxLength = 64;
 15
 16    /// <inheritdoc />
 17    public void Configure(EntityTypeBuilder<AsiBackboneAuditLedgerReasonCodeEntity> builder)
 18    {
 3619        ArgumentNullException.ThrowIfNull(builder);
 20
 3621        _ = builder.ToTable("AsiBackboneAuditLedgerReasonCodes");
 22
 3623        _ = builder.HasKey(reasonCode => reasonCode.Id);
 24
 3625        _ = builder.Property(reasonCode => reasonCode.Id)
 3626            .ValueGeneratedNever();
 27
 3628        _ = builder.Property(reasonCode => reasonCode.ConcurrencyStamp)
 3629            .IsRequired()
 3630            .HasMaxLength(ConcurrencyStampMaxLength)
 3631            .IsConcurrencyToken();
 32
 3633        _ = builder.Property(reasonCode => reasonCode.AuditLedgerRecordId)
 3634            .IsRequired();
 35
 3636        _ = builder.Property(reasonCode => reasonCode.Sequence)
 3637            .IsRequired();
 38
 3639        _ = builder.Property(reasonCode => reasonCode.ReasonCode)
 3640            .IsRequired()
 3641            .HasMaxLength(ReasonCodeMaxLength);
 42
 3643        _ = builder.HasOne(reasonCode => reasonCode.AuditLedgerRecord)
 3644            .WithMany()
 3645            .HasForeignKey(reasonCode => reasonCode.AuditLedgerRecordId)
 3646            .OnDelete(DeleteBehavior.Cascade);
 47
 3648        _ = builder.HasIndex(reasonCode => reasonCode.AuditLedgerRecordId);
 49
 3650        _ = builder.HasIndex(reasonCode => reasonCode.ReasonCode);
 51
 3652        _ = builder.HasIndex(reasonCode => new
 3653        {
 3654            reasonCode.AuditLedgerRecordId,
 3655            reasonCode.Sequence
 3656        })
 3657        .IsUnique();
 58
 3659        _ = builder.HasIndex(reasonCode => new
 3660        {
 3661            reasonCode.AuditLedgerRecordId,
 3662            reasonCode.ReasonCode
 3663        });
 3664    }
 65}