A partire da EF Core 2.1, la funzionalità SQL Server sempre crittografato non è ancora supportata.
Sto utilizzando SQL Server 2016 e Azure SQL e tutti i client sono basati su Windows.
Questo è ora supportato su .Net Core 3.1, sulle versioni inferiori sarà più difficile implorarlo, vedi anche la mia risposta sull'implementazione su .Net Core 3.1 qui: SQL Server Sempre crittografato con .NET Core non compatibile
Vedi questo problema / commento su github https://github.com/dotnet/SqlClient/issues/11#issuecomment-520100830
Per chiarire: Microsoft.Data.SqlClient dovrebbe essere usato su .Net Core 3.1
Non fare il tuo ruolo. Quello che abbiamo finito è stato creare un progetto di libreria di classi Windows classico Desktop separato nella nostra soluzione che gestiva il livello dati per la tabella con colonne crittografate. Abbiamo usato Dapper per l'ORM in quel progetto e supportato le colonne crittografate. Ha davvero limitato alcune cose che potevamo fare poiché il resto del nostro livello dati era attraverso EF Core, ma funziona.
Poiché si utilizza SQL di Azure, si consiglia inoltre di utilizzare Microsoft Azure Key Vault per archiviare la chiave master della colonna. Vedere il pacchetto NuGet Microsoft.SqlServer.Management.AlwaysEncrypted.AzureKeyVaultProvider. Questo pacchetto NuGet non è supportato anche in .NET Core.