< Summary

Information
Class: AsiBackbone.EntityFrameworkCore.Configurations.AuditLedgerReasonCodeEntityConfiguration
Assembly: AsiBackbone.EntityFrameworkCore
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/Configurations/AuditLedgerReasonCodeEntityConfiguration.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/AuditLedgerReasonCodeEntityConfiguration.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="AuditLedgerReasonCodeEntity" />.
 9/// </summary>
 10public sealed class AuditLedgerReasonCodeEntityConfiguration
 11    : IEntityTypeConfiguration<AuditLedgerReasonCodeEntity>
 12{
 13    private const int ReasonCodeMaxLength = 256;
 14    private const int ConcurrencyStampMaxLength = 64;
 15
 16    /// <inheritdoc />
 17    public void Configure(EntityTypeBuilder<AuditLedgerReasonCodeEntity> builder)
 18    {
 1919        ArgumentNullException.ThrowIfNull(builder);
 20
 1921        _ = builder.ToTable("AsiBackboneAuditLedgerReasonCodes");
 22
 1923        _ = builder.HasKey(reasonCode => reasonCode.Id);
 24
 1925        _ = builder.Property(reasonCode => reasonCode.Id)
 1926            .ValueGeneratedNever();
 27
 1928        _ = builder.Property(reasonCode => reasonCode.ConcurrencyStamp)
 1929            .IsRequired()
 1930            .HasMaxLength(ConcurrencyStampMaxLength)
 1931            .IsConcurrencyToken();
 32
 1933        _ = builder.Property(reasonCode => reasonCode.AuditLedgerRecordId)
 1934            .IsRequired();
 35
 1936        _ = builder.Property(reasonCode => reasonCode.Sequence)
 1937            .IsRequired();
 38
 1939        _ = builder.Property(reasonCode => reasonCode.ReasonCode)
 1940            .IsRequired()
 1941            .HasMaxLength(ReasonCodeMaxLength);
 42
 1943        _ = builder.HasOne(reasonCode => reasonCode.AuditLedgerRecord)
 1944            .WithMany()
 1945            .HasForeignKey(reasonCode => reasonCode.AuditLedgerRecordId)
 1946            .OnDelete(DeleteBehavior.Cascade);
 47
 1948        _ = builder.HasIndex(reasonCode => reasonCode.AuditLedgerRecordId);
 49
 1950        _ = builder.HasIndex(reasonCode => reasonCode.ReasonCode);
 51
 1952        _ = builder.HasIndex(reasonCode => new
 1953        {
 1954            reasonCode.AuditLedgerRecordId,
 1955            reasonCode.Sequence
 1956        })
 1957        .IsUnique();
 58
 1959        _ = builder.HasIndex(reasonCode => new
 1960        {
 1961            reasonCode.AuditLedgerRecordId,
 1962            reasonCode.ReasonCode
 1963        });
 1964    }
 65}