< Summary

Information
Class: AsiBackbone.EntityFrameworkCore.Configurations.AsiBackboneAuditLedgerMetadataEntityConfiguration
Assembly: AsiBackbone.EntityFrameworkCore
File(s): /home/runner/work/AsiBackbone/AsiBackbone/src/AsiBackbone.EntityFrameworkCore/Configurations/AsiBackboneAuditLedgerMetadataEntityConfiguration.cs
Line coverage
100%
Covered lines: 30
Uncovered lines: 0
Coverable lines: 30
Total lines: 61
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/AsiBackboneAuditLedgerMetadataEntityConfiguration.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="AsiBackboneAuditLedgerMetadataEntity" />.
 9/// </summary>
 10public sealed class AsiBackboneAuditLedgerMetadataEntityConfiguration
 11    : IEntityTypeConfiguration<AsiBackboneAuditLedgerMetadataEntity>
 12{
 13    private const int MetadataKeyMaxLength = 256;
 14    private const int MetadataValueMaxLength = 4096;
 15    private const int ConcurrencyStampMaxLength = 64;
 16
 17    /// <inheritdoc />
 18    public void Configure(EntityTypeBuilder<AsiBackboneAuditLedgerMetadataEntity> builder)
 19    {
 2220        ArgumentNullException.ThrowIfNull(builder);
 21
 2222        _ = builder.ToTable("AsiBackboneAuditLedgerMetadata");
 23
 2224        _ = builder.HasKey(metadata => metadata.Id);
 25
 2226        _ = builder.Property(metadata => metadata.Id)
 2227            .ValueGeneratedNever();
 28
 2229        _ = builder.Property(metadata => metadata.ConcurrencyStamp)
 2230            .IsRequired()
 2231            .HasMaxLength(ConcurrencyStampMaxLength)
 2232            .IsConcurrencyToken();
 33
 2234        _ = builder.Property(metadata => metadata.AuditLedgerRecordId)
 2235            .IsRequired();
 36
 2237        _ = builder.Property(metadata => metadata.MetadataKey)
 2238            .IsRequired()
 2239            .HasMaxLength(MetadataKeyMaxLength);
 40
 2241        _ = builder.Property(metadata => metadata.MetadataValue)
 2242            .IsRequired()
 2243            .HasMaxLength(MetadataValueMaxLength);
 44
 2245        _ = builder.HasOne(metadata => metadata.AuditLedgerRecord)
 2246            .WithMany()
 2247            .HasForeignKey(metadata => metadata.AuditLedgerRecordId)
 2248            .OnDelete(DeleteBehavior.Cascade);
 49
 2250        _ = builder.HasIndex(metadata => metadata.AuditLedgerRecordId);
 51
 2252        _ = builder.HasIndex(metadata => metadata.MetadataKey);
 53
 2254        _ = builder.HasIndex(metadata => new
 2255        {
 2256            metadata.AuditLedgerRecordId,
 2257            metadata.MetadataKey
 2258        })
 2259        .IsUnique();
 2260    }
 61}