Silnie typowane ID w asp.net core

0

Jakie podejście stosujecie do mapowania silnie typowanych ID w aspnet core. Czy używacie ich w parametrach akcji kontrolera np. z [FromRoute], [FromBody]? Czy może używacie Guida/Inta i później go mapujecie?

public record BookId(Guid Value)
{
  public static BookId New() => new(Guid.NewGuid());
}
2

Był kiedyś podobny temat StronglyTypedId - używacie?
O ile jeszcze używanie silnie typowanych ID wewnątrz żeby nie pomylić ze sobą dwóch IDków w parametrach ma jakiś sens to traktowanie że dostajemy od usera silnie typowane id trochę jest bez sensu. User co najwyżej daje nam jakiś GUID, po drodze i tak się zatraca informacja o tym co to za ID i pomyłka po stronie klienta nie będzie zauważona, nie widzę zalet

2

Zrób sobie przeciążenie operatora w rekordzie BookId.

public static implicit operator BookId(Guid value) => new(value);

Wtedy w parametrach kontrolera stosujesz zwyczajnego Guida, a przekazując niżej np do jakiejś metody gdzie parametrem jest BookId przekazujesz Guid z kontrolera, a konwersja niejawnie "robi się sama".

1 użytkowników online, w tym zalogowanych: 0, gości: 1