Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core

di Stefano Mostarda, in LINQ,

L'attributo EntityTypeConfiguration permette di specificare quale classe contiene il mapping associato all'entity a cui si applica l'attributo. Prendiamo come esempio il seguente codice.

[EntityTypeConfiguration(typeof(PersonConfiguration))]
public class Person
{
  ...
}

Una delle cose scomode di questa tecnica di mapping consiste nel fatto che il parametro che passiamo all'attributo è un oggetto di tipo Type. Questo significa che per errore potremmo passare il tipo string, int (o qualunque altro tipo) e otterremmo un'eccezione solamente a runtime.

La versione 11 di C# ha introdotto la possibilità di utilizzare i generics con gli attributi. Grazie a questa funzionalità, il team di EF ha introdotto una versione generica: EntityTypeConfiguration. Grazie ai constraint applicabili ai generics, il tipo T deve implementare l'interfaccia IEntityTypeConfiguration mentre K è il tipo dell'entity. In questo modo, possiamo garantirci già in fase di compilazione che il tipo passato all'attributo sia corretto.

Come risultato, possiamo riscrivere il codice dell'esempio precedente nel seguente modo.

[EntityTypeConfiguration<PersonConfiguration, Person>]
public class Person
{
  ...
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi