© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•3y ago•
5 replies
SWEETPONY

Is it worth to create configurations for dbcontext?

I have following dbcontext:
public sealed class ReadModelDbContext: DbContext
{
    public ReadModelDbContext(DbContextOptions<ReadModelDbContext> options)
        : base(options)
    {
    }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Qualification>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Qualification>().HasAlternateKey(x => x.Identity);
        modelBuilder.Entity<Function>().HasIndex(x => x.Name);
        modelBuilder.Entity<Resource>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Node>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Location>().HasIndex(x => x.Identity);
    }

    public DbSet<Qualification> Qualifications => Set<Qualification>();
    public DbSet<Function> Functions => Set<Function>();
    public DbSet<FunctionQualification> FunctionQualifications => Set<FunctionQualification>();
    public DbSet<Resource> Resources => Set<Resource>();
    public DbSet<Node> Nodes => Set<Node>();
    public DbSet<Location> Locations => Set<Location>();
}
public sealed class ReadModelDbContext: DbContext
{
    public ReadModelDbContext(DbContextOptions<ReadModelDbContext> options)
        : base(options)
    {
    }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Qualification>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Qualification>().HasAlternateKey(x => x.Identity);
        modelBuilder.Entity<Function>().HasIndex(x => x.Name);
        modelBuilder.Entity<Resource>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Node>().HasIndex(x => x.Identity);
        modelBuilder.Entity<Location>().HasIndex(x => x.Identity);
    }

    public DbSet<Qualification> Qualifications => Set<Qualification>();
    public DbSet<Function> Functions => Set<Function>();
    public DbSet<FunctionQualification> FunctionQualifications => Set<FunctionQualification>();
    public DbSet<Resource> Resources => Set<Resource>();
    public DbSet<Node> Nodes => Set<Node>();
    public DbSet<Location> Locations => Set<Location>();
}


I think context doesn't look good that is why I decided to use configurations
Example of configuration:
internal class ResourceConfiguration : IEntityTypeConfiguration<Resource>
{
    public override void Configure(EntityTypeBuilder<Resource> builder)
    {
        base.Configure(builder);

        builder.Property(p => p.Identity).IsRequired(true);
        builder.Property(p => p.Type).IsRequired(true);
        builder.Property(p => p.AdditionalData)
            .HasColumnType("jsonb")
    }
}
internal class ResourceConfiguration : IEntityTypeConfiguration<Resource>
{
    public override void Configure(EntityTypeBuilder<Resource> builder)
    {
        base.Configure(builder);

        builder.Property(p => p.Identity).IsRequired(true);
        builder.Property(p => p.Type).IsRequired(true);
        builder.Property(p => p.AdditionalData)
            .HasColumnType("jsonb")
    }
}


is it worth it? what is the best practice for such things?
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Unable to create DbContext
C#CC# / help
2y ago
✅ Transient DbContext vs DbContextFactory
C#CC# / help
2y ago
❔ Is it worth to create lazy dictionary in this case?
C#CC# / help
4y ago
Is is possible to "mock" dbcontext?
C#CC# / help
4y ago