Closed stevenmoberg closed 2 years ago
The easiest option to register your own translator is to replace SqlServerMethodCallTranslatorProvider by calilng ReplaceService in your context configuration, e.g.:
public class BlogContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseSqlServer(...)
.ReplaceService<IMethodCallTranslatorProvider, MyMethodCallTranslatorProvider>();
}
Your MyMethodCallTranslatorProvider would extend SqlServerMethodCallTranslatorProvider, adding your translator(s).
If you'd like to share this across multiple projects, you can also write a plugin; see the SQL Server NetTopologySuite plugin as an example for the required infrastructure.
The SqlServerDateTimeMemberTranslater does not work with DateOnly even if a value converter exists to change it to DateTime. I've created my own for translator for DateOnly but cannot find any documentation about adding custom IMemberTranslators to EF Core
It would be nice to be able to provide custom translators in ModelConfigurationBuilder for given type properties
Taken frrom https://github.com/dotnet/efcore/blob/main/src/EFCore.SqlServer/Query/Internal/SqlServerMemberTranslatorProvider.cs
EF Core version: 6.0.5 Database provider: Microsoft.EntityFrameworkCore.SqlServer Target framework: .NET 6.0 Operating system: Windows 10 IDE: Visual Studio 2022 17.2.2