Tutorials Microservices with .NET

Implementing User Microservice Infrastructure Layer — Complete Guide

Implementing User Microservice Infrastructure Layer — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Microservices with .NET on Toolliyo Academy.

On this page

Microservices with .NET · Lesson 14 of 131

Implementing User Microservice Infrastructure Layer

BeginnerIntermediateAdvancedProfessional

Beginner · 1 — Foundations · ~6 min · Module 2: Building User Microservice

What is this?

Infrastructure implements IUserRepository with EF Core, configures UserDbContext, and runs SQL migrations against ShopNest_Users.

Why should you care?

Swapping SQL Server for PostgreSQL later only changes Infrastructure — Domain stays untouched.

See it live — copy this example

Create a Web API project (dotnet new webapi), paste the code, then run dotnet run.

public class UserDbContext : DbContext
{
    public UserDbContext(DbContextOptions<UserDbContext> o) : base(o) { }
    public DbSet<UserProfile> Users => Set<UserProfile>();
}

public class UserRepository : IUserRepository
{
    private readonly UserDbContext _db;
    public UserRepository(UserDbContext db) => _db = db;
    public Task AddAsync(UserProfile user, CancellationToken ct = default)
    {
        _db.Users.Add(user);
        return _db.SaveChangesAsync(ct);
    }
}

Run Example »

Edit the code and click Run — like W3Schools Try it Yourself.

Code
Result

What happened?

  • EF configuration for Email value object conversion can live in OnModelCreating.
  • Migrations live in Infrastructure project.

Try it yourself

  1. Add Microsoft.EntityFrameworkCore.SqlServer package.
  2. build UserRepository.
  3. dotnet ef migrations add Initial -p Infrastructure -s Api
  4. Change a string or route in the example and save — watch Swagger or the RabbitMQ Management UI update.
  5. Break the code on purpose (remove a semicolon), read the error message, then fix it.

Remember

Infrastructure = EF + repository impl. One DbContext per service. Migrations version schema.

Interview prep for this lesson

Practice these questions aloud after reading—each links to a full structured answer.

Mid PDF Detailed
URI Versioning: Include the version in the URL, such as /api/v1/users.?
Short answer: Example: GET /api/v1/orders/{id} vs. GET /api/v2/orders/{id} GET /api/v1/orders/{id} vs. GET /api/v2/orders/{id} Example code GET /api/v1/orders/{id} vs. GET /api/v2/orders/{id} GET /api/v1/orders/{id} vs.…
Mid PDF Detailed
Test Full User Journeys: Simulate real user workflows that span multiple?
Short answer: Test Full User Journeys: Simulate real user workflows that span multiple? is a common interview topic in Microservices. Give a clear definition, then one concrete example. Real-world example (ShopNest) Shop…
Senior PDF Detailed
Distributed Transactions: Using Two-Phase Commit (2PC) or Sagas to ensure?
Short answer: that a transaction either commits or rolls back across multiple services. Real-world example (ShopNest) After payment succeeds, ShopNest publishes OrderPaid . Inventory and Notification services react indep…
Mid PDF Detailed
Data Consistency: Since all services share the same database, it's easier to ensure?
Short answer: data consistency and avoid issues like eventual consistency. Real-world example (ShopNest) ShopNest splits Catalog, Cart, Order, and Payment into services so teams can deploy catalog changes without redeplo…
Mid PDF Detailed
Liveness Probe:?
Short answer: Used to determine if a service is alive and functioning. If the liveness probe fails, Kubernetes will restart the container. Example: A database connection check can be implemented as a liveness probe. Real…
Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

Microservices with .NET
Course syllabus

Microservices with .NET Tutorial

Module 1: Foundations and Fundamentals
Module 2: Building User Microservice
Module 3: ShopNest Services and Integration
Module 4: RabbitMQ and Messaging
Module 5: Saga and Distributed Transactions
Module 6: API Gateway
Module 7: gRPC, CQRS, and GraphQL
Module 8: Resiliency and Fault Tolerance
Module 9: DevOps and Cloud-Native
Module 10: Git and GitHub
Module 11: CI/CD Pipelines
Module 12: Observability and Testing
Module 13: Advanced Topics
Module 14: Real-World Enterprise Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details