< 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    {
 2219        ArgumentNullException.ThrowIfNull(builder);
 20
 2221        _ = builder.ToTable("AsiBackboneAuditLedgerReasonCodes");
 22
 2223        _ = builder.HasKey(reasonCode => reasonCode.Id);
 24
 2225        _ = builder.Property(reasonCode => reasonCode.Id)
 2226            .ValueGeneratedNever();
 27
 2228        _ = builder.Property(reasonCode => reasonCode.ConcurrencyStamp)
 2229            .IsRequired()
 2230            .HasMaxLength(ConcurrencyStampMaxLength)
 2231            .IsConcurrencyToken();
 32
 2233        _ = builder.Property(reasonCode => reasonCode.AuditLedgerRecordId)
 2234            .IsRequired();
 35
 2236        _ = builder.Property(reasonCode => reasonCode.Sequence)
 2237            .IsRequired();
 38
 2239        _ = builder.Property(reasonCode => reasonCode.ReasonCode)
 2240            .IsRequired()
 2241            .HasMaxLength(ReasonCodeMaxLength);
 42
 2243        _ = builder.HasOne(reasonCode => reasonCode.AuditLedgerRecord)
 2244            .WithMany()
 2245            .HasForeignKey(reasonCode => reasonCode.AuditLedgerRecordId)
 2246            .OnDelete(DeleteBehavior.Cascade);
 47
 2248        _ = builder.HasIndex(reasonCode => reasonCode.AuditLedgerRecordId);
 49
 2250        _ = builder.HasIndex(reasonCode => reasonCode.ReasonCode);
 51
 2252        _ = builder.HasIndex(reasonCode => new
 2253        {
 2254            reasonCode.AuditLedgerRecordId,
 2255            reasonCode.Sequence
 2256        })
 2257        .IsUnique();
 58
 2259        _ = builder.HasIndex(reasonCode => new
 2260        {
 2261            reasonCode.AuditLedgerRecordId,
 2262            reasonCode.ReasonCode
 2263        });
 2264    }
 65}