Specificare il tipo di una colonna durante il mapping in Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

I tipi di .NET sono differenti dai tipi di Sql Server. Un tipico esempio riguarda le date. In .NET abbiamo un tipo DateTime, mentre in Sql Server abbiamo diversi tipi: DateTime che può contenere date solo in un certo range di data e ora, DateTime2 che può contenere qualunque data e ora e Date che può contenere solo una data senza l'ora.

Gestire questa diversità è uno dei compiti degli O/RM e quindi anche di Entity Framework. Tuttavia, gestire questa differenza non è sempre una cosa automatica. Ad esempio, Entity Framework necessita di sapere quale sia il tipo effettivo sul database per costruire poi la query. Per specificare quale sia il tipo della colonna del database, dobbiamo usare il metodo HasColumnType durante la fase di mapping come mostrato in questo esempio.

[code lang=""c#"]entity.Property(e => e.DataFine).HasColumnType("date");
entity.Property(e => e.UltimaModifica).HasColumnType("datetime");