Yak: csharp after situation (Yak 02) — plain domain + DTOs + mappers

After/: plain Client/Order (no DbBase), ClientDto/OrderDto records
carrying the relations both ways, hand-written Mappers with a
reference-identity cache for the back-reference cycle, DbContext with
explicit Save(domain) via shadow entities (flipped dependency), and a
WebApp that consumes only DTOs. AfterTests cover the 7 required
behaviours; full solution builds with 0 warnings, 26/26 tests pass.
This commit is contained in:
2026-09-11 15:02:35 +01:00
parent 463245288a
commit c22a1e2ffa
10 changed files with 644 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
namespace After;
/// <summary>
/// DTO carrying an <see cref="Order"/> — including its back-reference to the
/// owning <see cref="ClientDto"/> — to the WebApp. A record: value equality
/// keeps round-trip comparisons trivial.
/// </summary>
public sealed record OrderDto
{
/// <summary>Primary key of the underlying order.</summary>
public Guid Id { get; init; }
/// <summary>Free-text description of what this order is for.</summary>
public string Description { get; init; } = string.Empty;
/// <summary>
/// Back-reference to the owning client, or <c>null</c> for a bare order
/// that has not been added to any client.
/// </summary>
public ClientDto? ClientDto { get; init; }
}