• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekazywanie danych z komponentu do bazy danych - Blazor

VPS Starter Arubacloud
0 głosów
378 wizyt
pytanie zadane 6 grudnia 2021 w C# przez ShockWave Bywalec (2,350 p.)
Cześć, mam pytanie co do zapisywania danych z inputów do bazy danych. Mam stworzony komponent do rejestracji w blazor i bazę danych stworzoną z Entity w projekcie. Jak mogę przekazywać value inputa do bazy danych w takim przypadku.

Z góry dziękuję za pomoc.
komentarz 8 grudnia 2021 przez areklipno Stary wyjadacz (11,930 p.)
Masz już jakąś klasę, z którą chciałbyś połączyć inputy i potem przekazać ją do bazy danych? Jeśli tak podaj proszę jej nazwę i z 1 właściwość. Wtedy napiszę jak wg mnie powinno to wyglądać.
komentarz 11 stycznia 2022 przez Wiciorny Ekspert (269,120 p.)

@ShockWave, zebrać wartości inputów -> do obiektu po stronie klienta i przesłać ten obiekt ( poprzez funkcje która wskaże konkretny ENDPOINT), który nasłuchiwany lub odbierany będzie przez logike serwera -> akcja oczekiwania na  zdążenie,  z ciałem w postaci np txt/strumienia bitów/xml/jsona nie wiem jakie masz API do tego następnie po stronie twojego serwerowego api odebrać obiekt -> serializować go na obiekt  do bazy i zapisać odpowiednio zczytując pola klucz -> wartość np. 

1 odpowiedź

0 głosów
odpowiedź 11 stycznia 2022 przez assassin Gaduła (3,260 p.)

Pisząc do bazy danych, masz na myśli do konkretnej tabeli tak?

Stworzyłeś DbContext bazy? Zrób repozytorium (wzorzec repozytorium), może być generyczny jeśli chcesz się bardziej zanurzyć w programowanie. Z tego co wiem to właśnie w repozytorium stwórz funkcje crudowe (Create, Update, Delete).

Powiedzmy, że Twoja baza danych nazywa się MojaBaza to dzięki Entity możesz stworzyć context, który będzie zawierał wszystkie tabela w bazie MojaBaza. Context ten musi jednak dziedziczyć po DbContext:

public class MojaBazaContext : DbContext
{
    public MojaBazaContext(DbContextOptions<MojaBazaContext> options) : base(options) {}
    
    // teraz tworzę taką jakby instancję mojej tabeli o nazwie jakże skomplikowanej: MojaTabela
   public DbSet<MojaTabela> MojaTabelas { get; set; }
}

 

Tworzysz sobie repo i interfejs do bazy, np.: 

public class MojaBazaRepository : IMojaBazaRepository
{
     private readonly MojaBazaContext _mojaBazaEntities;

     public MojaBazaRepository(MojaBazaContext context)
     {
        _mojaBazaEntities = context;
     }

    public void DodajDaneDoTabeli(MojaTabela daneDoDodania)
    {
       _mojaBazaEntities.MojaTabela.Add(daneDoDodania);
    }
}

 

Po wstrzyknięciu contextu masz dostęp do tabel. Teraz dodajesz funkcję DodajDaneDoTabeli do interfejsu, żebyś mógł z niej korzystać w innych clasach:

public interface IMojaBazaRepository
{
    void DodajDaneDoTabeli(MojaTabela daneDoDodania);
}

Teraz będziesz mógł użyć tej funkcji, np. w kontrolerze:

public class MojController
{
    private readonly IMojaBazaRepository _mojaBazaRepo;

    public MojController()
    {
       _mojaBazaRepo = new MojaBazaRepository();
    }

  public ActionResult DodajDane(MojaTabela daneDoDodania) // tutaj tak naprawdę dodajesz to, co chcesz. Nie musi być tutaj MojaTabela, może być równie dobrze string, int i inne
  {
      _mojaBazaRepo.DodajDaneDoTabeli(daneDoDodania);
  }
}

 

Teraz trzeba tylko pobrać dane z inputa. I używasz funkcji z MojController, czyli DodajDane()

 

Jakbym coś źle napisał to pisz w komentarzu.

 

Najlepiej by też było, gdybyś pokazał swój kod.

 

 

komentarz 11 stycznia 2022 przez Wiciorny Ekspert (269,120 p.)

Stworzyłeś DbContext bazy? Zrób repozytorium (wzorzec repozytorium), może być generyczny jeśli chcesz się bardziej zanurzyć w programowanie. Z tego co wiem to właśnie w repozytorium stwórz funkcje crudowe (Create, Update, Delete).

Powiedzmy, że Twoja baza danych nazywa się MojaBaza to dzięki Entity możesz stworzyć context, który będzie zawierał wszystkie tabela w bazie MojaBaza. Context ten musi jednak dziedziczyć po DbContext:

przestudiuj sobie trochę wiedzy w zakresie wzorców, tego o czym piszesz bo wychodzi totalna bzdura, brak zrozumienia pojęć i tego co chcesz przekazać, ktoś czytając to potem będzie to powielał bez sensownie. 

komentarz 13 stycznia 2022 przez assassin Gaduła (3,260 p.)
Co Twoim zdaniem jest nie tak? Spotkałem się z takim kodem w pracy już parę razy. Nie jestem nieomylny, ale jeśli to, co napisałem, jest bzdurne to wychodzi na to, że wszystkie projekty w pracy muszę poprawić.

Podobne pytania

0 głosów
1 odpowiedź 243 wizyt
pytanie zadane 5 grudnia 2021 w C# przez ShockWave Bywalec (2,350 p.)
0 głosów
1 odpowiedź 274 wizyt
0 głosów
0 odpowiedzi 242 wizyt
pytanie zadane 10 grudnia 2021 w C# przez dawid628 Początkujący (400 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...