Я пытаюсь сгенерировать оператор SQL MERGE из сущности Entity Framework Core.Для этого мне нужно преобразовать все свойства сущности в строки SQL, например:
bool => 1 or 0
string => 'string'
int => 123
Похоже, EF Core использует класс ValueConverterSelector
как фабрику для всех различных внутренних , а такжепользовательские преобразователи значений.Мне нужно получить это из контекста.Как я могу это сделать?
ОБНОВЛЕНИЕ: Благодаря Ивану Стоеву он предложил следующий способ получить converterSelector:
var converterSelector = context.GetInfrastructure().GetService<IValueConverterSelector>()
var converters = converterSelector.Select(entry.Metadata.ClrType, prop.Metadata.ClrType);
// Converters collection is empty ;(
Я сталкиваюсьновая проблема с этим.Просматривая приватные поля, я вижу, что этот селектор не имеет зарегистрированных преобразователей.Следовательно, я все еще не могу получить правильный конвертер для каждого свойства для сущностей.Мне нужен конвертер с точными пользовательскими и встроенными конвертерами, которые использует EF.Есть идеи?
![enter image description here](https://i.stack.imgur.com/pGAge.png)