5 NAJLEPSZYCH PRAKTYK z Entity Framework Core

Cześć! Jest już nowy odcinek na kanale modestprogrammer na youtube. W tym odcinku przedstawię Ci 5 moim zdaniem najlepszych praktyk, o których musisz pamiętać współpracując z Entity Framework Core w C#. Miłego oglądania

Link: https://www.youtube.com/watch?v=kaG0HUjjRpc

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #entityframework
kazik- - 5 NAJLEPSZYCH PRAKTYK z Entity Framework Core

Cześć! Jest już nowy odcine...

źródło: comment_1627192380HClefln10lrJ2iXStrMLb5.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

WPROWADZENIE Do ENTITY FRAMEWORK CORE – Współpraca z Bazą Danych w C#

Cześć! Jest już nowy odcinek na kanale modestprogrammer na youtube. Dowiesz się z niego, jak współpracować z bazą danych C#. Opowiem o tym, czym jest ORM oraz przede wszystkim Entity Framework i Entity Framework Core. Miłego oglądania

Link: https://www.youtube.com/watch?v=p0KeZqlPq7I

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet
kazik- - WPROWADZENIE Do ENTITY FRAMEWORK CORE – Współpraca z Bazą Danych w C#

Cze...

źródło: comment_16263553380fpgm5thSkICfcGHITmTb7.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nauczyłem się #aspnetcore (przynajmniej mi się tak wydaje) w tym MVC, Razor Page, liznąłem trochę #entityframework itp.
Chciałbym teraz popełnić jakiś projekt na githuba. Zastanawiałem się nad jakimś sklepem, ale może lepiej będzie zrobić coś innego? Chciałem się też zapytać czy znacie może jakieś fajne stronki, które wygenerują mi dane do bazy danych np.: produkty?

#programowanie #programista15k #aspnet #csharp
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Anon95: jeżeli to projekt do nauki to sklep będzie ok. Możesz sobie wymyślić jakiś specyficzny sklep sprzedający np jakoś produkty konfigurowalne albo w modelu subskrypcyjnym żeby skomplikować trochę logikę aplikacji.
  • Odpowiedz
@Anon95: zrób apke która zapisuje filmy YT na playlistę na zadanym koncie YT. Lizniesz komunikację z zewnętrznymi API, jakieś oauth2. Powinno ci to zająć tydzień lekką ręką
  • Odpowiedz
Cześć Mirki,
od jakiegoś czasu tworzę podcast Backend na Froncie, w którym rozmawiam z gośćmi na tematy programistyczne (zwykle około .NETowe)
Dzisiaj pojawił się odcinek numer 6, w którym razem z Michałem Białeckim odpowiemy na pytanie Dlaczego używamy Entity Framework?

Rozmawialiśmy o tym:
Co to jest orm
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie dotyczące EF i trochę #bazydanych od nooba. Podejście code first

Powiedzmy, że tworzę sobie model User, który ma id, nazwę, hasło itp i do tego ma kolekcje zwierząt (klasa Animal). Animal ma w sobie id, Guid, nazwę, obiekt typu Type. Da się jakoś mądrze zrobić, żeby Type był automatycznie dopasowany 'kolumnami' do odpowiedniego typu? Rozumiem, że dla każdego typu zwierzęcia i tak muszę zrobić tabelę, ale chodzi mi o
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@g_vv: Nikomu się nie chce z tym bawić, ale jak mus, to mus.
Ale nie narzekaj - obecnie jestem w projekcie pisanym od podstaw w dotnet core, ale korzystamy z bazy na Oracle. Zwykle użylibyśmy Dappera czy jakiegoś innego mini-ORMa, ale musimy się jeszcze zintegrować z "odziedziczonym" serwerem, przez który wszystkie inserty, update'y itd muszą przechodzić. Dlatego musimy kombinować z własnym "ORMem" i męczyć się z tym serwerem...
Samo "DB
  • Odpowiedz
Teraz już nie będę usuwać postów, obiecuję. Mirki mam problem z Entity Framework. Tworzę sobie ADO.NET model i niestety nie generuje mi poprawnie pliku BlogModel.Designer.cs - plik ten jest pusty. Na razie jedyne rozwiązanie jakie znalazłem to kliknięcie PPM na diagram i wybranie opcji "Add Code Generation Item...".

Gdy wpiszę jakąś nazwę to powstaje poprawny plik designera, ale jako że się uczę - nie wiem czy ten plik jest jakoś powiązany z
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@thomekh:
Co masz na myśli przez "w ten sposób"? Ogólnie to ja się skupię na Code First, chcę po prostu ogólnie skrobnąć wszystkie po trochu z EF. Właściwie twierdzisz, że nie warto się uczyć EF, ale w ofertach na juniora bardzo często się pojawia. Tylko dlatego się tego uczę.

@drajvver
Tak wiem Code First ftw. Tego się będę najbardziej uczyć :)
  • Odpowiedz
@Goglez: z tego co pamiętam jest fluent api w EF core, adnotacje również powinny działać.

Moim zdaniem wybór należy do Ciebie, ale w niektórych przypadkach skorzystanie z Fluent Api jest jedynym rozwiązaniem, np relacja 1 do 0 lub 1.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 3
@Goglez: adnotacji używasz jak robisz zwykłego cruda. Jak bawisz się w jakieś ddd i rozdzielnie warstw to wtedy chcesz używać fluent api I mieć większe możliwości.
  • Odpowiedz
Jest pierwszy perk na liście oczekujących na Summon The JSON: 10 tapet programistycznych za darmo

Dołącz teraz: http://bit.ly/summon-the-json

#programowanie #naukaprogramowania #programista15k #java #informatyka #javascript #frontend #backend #angular #pracait #webdev #fullstack #php #python #react #webdesign #justnewsit #devops
tomaszs - Jest pierwszy perk na liście oczekujących na Summon The JSON: 10 tapet prog...

źródło: comment_15837718232U9yhpkWbkxKbwPDCiETFR.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#aspnet #bazydanych #csharp #dotnet #entityframework #linq #postgresql #programowanie #sql
W jaki sposób z bazy danych pobrać X wierszy starszych od tego o Id=4? Kolumna Time nie zawiera unikalnych wartośći, przyjmuję, że drugim kryterium sortowania będzie kolumna Id. Nie chcę pominąć żadnych ani pobrać drugi raz tych samych wierszy, kiedy będę chciał pobierać kolejne X wierszy.

|
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@30012016: Timestamp to nie jest typ związany z datą/czasem. Pewnie w EF modelu masz TimeSpan i on jest mapowany na sqlowy typ Time. Co do wydajności ciężko powiedzieć bez Execution plan i określeniem ile danych będzie produkcyjne. W EF core tez możesz indeksy zrobić, za pomocą migracji. Ogólnie jeśli nie znasz SQLa to wybierz inny data storage. ORM to rozwiazanie, które nie na przykryć nieznajomości technologii, tylko przyspieszyć budowanie aplikacji
  • Odpowiedz
@30012016: Wybacz, nie wiem czemu, pomyślałem, ze mówisz o mssql. Uwaga o timestamp w takim razie nieaktualna. Indeks tylko przyspieszy wyszukiwanie, Ty sam do niego się nie odwołujesz. Bez indeksu silnik będzie robił table scana, ale w aplikacji do portfolio może to nie mieć aż tak dużego znaczenia. W ostateczności: jeździć obserwować. Jak zauważysz z czasem, ze to zapytanie trwa długo, albo zabiera za dużo zasobów, to dodasz indeks na
  • Odpowiedz
#aspnet #bazydanych #csharp #dotnet #entityframework #postgresql #sql

Próbuję podpiąć PostgreSQL zamiast Microsoft SQL Server. W pgAdmin doinstalowałem rozszerzenie citext. Zmieniłem kolumnę na citext. Do DbContext dodałem HasPostgresExtension("citext"). Pokasowałem migracje, dodałem nową. Mimo tego takie zapytania nie ignorują wielkości liter:

Where(u => u.UserName == userName)
Poniższe oczywiście działa:
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@30012016: Jeśli nie zależy Ci na wydajności to może ILIKE - ale przy dużych tabelach licz się z kilku(dziesięcio)krotnym wzrostem czasu odpowiedzi. Podobnie z operatorem ~*
  • Odpowiedz
#aspnet #csharp #dotnet #entityframework

Czy zwracanie modeli widoku z repozytorium to zła praktyka? Powinienem dodać jakąś warstwę między repozytorium a kontrolerem?

Czy posiadanie dużej ilości metod w repozytorium to zła praktyka? Powinienem rozdzielić repozytorium na kilka innych? Czy może poprzerabiać metody na uogólnione lub przyjmujące argument delegatu?
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@30012016: Zależne od kilku czynników, ale mając do wyboru kilkadziesiąt wycieczek do bazy albo jedną (zakładam, że to jakaś prosta kwerenda), nie musisz spychać tego na bazę i lepiej pobrać raz do pamięci i mielić lokalnie. Jeśli za każdym razem w pętli będziesz wołał np. SingleOrDefault() na DBSecie, będziesz za każdym razem leciał z kwerendą do bazuki.
  • Odpowiedz
Jak zmapować w Entity Framework Core więcej niż jedną relację wiele-do-wielu? Na przykład, żeby użytkownik mógł polubić wiadomość i/lub oznaczyć jako ulubioną?

public class User
{
public int Id { get; set; }
public ICollection LikedPosts { get; set; }
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AlCapone_: ctrl+r+r i zamienia Ci wszystkie nazwy w kodzie.

To co podesłałeś to ma być w dwóch osobnych kwerendach, tak jak miałeś na początku, ja tylko wcześniej podałem zarys jak to powinno wyglądać.
  • Odpowiedz
Mam pytanie co do entity frameworka. Załóżmy że mam model User który ma relacje jeden do wielu z modelem Book (user może mieć wiele książek). Czy będzie jakaś różnica jeżeli w modelu user zrobię listę typu book (z tego co widziałem w bazie entity i tak tworzy wtedy FK w tabeli book do danego usera) lub jeżeli sam zdefiniuje klucz obcy w modelu book do usera? Jeżeli będę później chciał z bazy
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sf71hrb6: Dokładnie tak jak napisał @kubsle
Ta referencja do List to navigation property, a używanie Include to tak zwany Eager Loading.

Rozwiązanie pierwsze w sumie można zastosować jednocześnie z drugim i przydaje się w sytuacji gdy masz encję dziecko i potrzebujesz tylko id parenta.

Przykład relacji Project
  • Odpowiedz
dokładnie tak jak wspomniał @bacteria, najpierw zadeklarowałeś nazwę tabeli która przyjmuje wartość FK, a poniżej deklarujesz tabele z która ma być połączony.( ͡° ͜ʖ ͡°)
Aby to było bardziej czytelne najpierw powinna być tabela z która łączysz a potem powinna być nazwa kolumny,( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)
  • Odpowiedz