Entity Framework Core 5 - 3 pytania i odpowiedzi ze szkolenia (sierpień 2021)

Seria pytań uczestników, które pojawiły się podczas szkolenia Entity Framework Core 5 realizowanego w dniach 16-18.08.2021 r.


Czy konfiguracja z Entity Framework jest brana pod uwagę przy walidacji formularzy MVC?

Nie, MVC nie korzysta z konfiguracji FluentAPI z EF Core. Jeśli chcemy posiadać takie same reguły walidacyjne w MVC i EF Core to musimy skorzystać ze standardowych atrybutów System.ComponentModel.DataAnnotation.
Ale można spróbować zaimplementować własny walidator na podstawie interfejsu IObjectModelValidator i pobrać reguły z modelu danych z EF Core.

Czy różnią się mapowania TPH, TPT i TPC? Które obsługuje EF Core 5?

TPH
Wszystkie klasy potomne mapowane są do jednej wspólnej tabeli a typ określony jest przez specjalną kolumnę Discriminator, w której zapisywana jest nazwa typu.

TPT
Wspólne właściwości z klasy bazowej mapowane są do głównej tabeli, a specyficzne właściwości klas potomnych mapowane są do osobnych tabel i powiązane są do 1-1.

TPC
Wszystkie klasy potomne mapowane są osobnych tabel.

Najlepiej wyjaśnia to ten diagram.

EF Core 5 obsługuje tylko TPH i TPT. Obsługa TPC spodziewana jest w EF Core 6.

W jaki sposób pobrać DbContext z DbSet?

var context = dbset.GetService().Context;