ale click bait xD
tak mnie właściwie naszło, że chyba ta cała krytyka tego połączenia jest z jakiegoś powodu nadmuchana
pomijając te potencjalne przejścia pomiędzy z np. postgresa na jakieś mongo, to wydaje mi się, że repo nabiera więcej sensu jeżeli zamiast traktowania go jako abstrakcje nad bazą danych, to traktowalibyśmy go jako abstrakcja nad data storage.
Jakiś context: Załóżmy że mamy kilka końcówek w aplikacji które zwracają podobne dane (nie, nie stosujemy graphql)
user_full_profile
: imie, nazwisko, obrazek_id, opis, nazwa bloga, opis bloga
user_mobile_profile
: imie, nazwisko, obrazek_id, opis
user_for_ad_profile
: imie, nazwisko, obrazek_id, nazwa bloga, liczba odsłon bloga w miesiącu
stosując jakiś zewnętrzny mechanizm cachowania typu np. redisa mamy tam te swoje klucze tworzone za pomocą jakiejś konwencji
user_full_fd95069c07504f788f871db95146e5ca
user_mobile_fd95069c07504f788f871db95146e5ca
user_for_ad_fd95069c07504f788f871db95146e5ca
i mając repo łatwo moglibyśmy dodać cache invalidation z jednego miejsca, która zawsze będzie wykonywana niezależnie czy ktoś zapomni dodać / źle to zrobi / coś się pozmienia itd.
public x y z Edit(c data)
{
var user = updateduser;
await context.SaveChangesAsync();
foreach (var key in Redis.Keys.Where(x => x.Contains(user.Id.ToString()))
{
Redis.RemoveKey(key);
}
}
co sądzicie?