Как минимум, задача записать в json-поле типа BaseType объект типа ChildType, а затем десериализовать значение именно последнего типа, не решается "из коробки" в EF
Это будет не две строчки кода, если вам нужно поле типа List<object>, в котором значения типа int, double и decimal, инициализированные литералом "1", будут десериализованы при получении из бд как int , double и decimal, а не как int64 все трое. Или если вам нужно, чтобы поле типа BaseType десериализовалось как ChildType, если туда был записан объект такого типа.
Ну, во-первых, нет, без fluent api, на данный момент, в .net 7, невозможно настроить конвертацию в json. Во-вторых, придется постараться, чтобы json-поля поддерживали полиморфизм с точным преобразованием типов.
Во-первых, это более простая в использовании, более наглядная и удобная альтернатива HasConversation(), вообще не требующая использовать Fluent API. Во вторых, тут доступна строгая сериализация, в том числе позволяющая поддерживать полиморфизм для сложных пользовательских классов, а не только базовых типов. Конечно, можно это реализовать и через Fluent API, но тогда будет еще больше лишнего кода, а тут готовый удобный функционал.
По крайней мере, с mssql такая запись не сработает. Может, вы не указали какие-то детали.
Даже если в некоторых условиях такая запись сработает, она всё-же не будет поддерживать полиморфизм.
P.S. для форматирования кода, поместите его в тройные косые кавычки (не знаю, как правильно назвать такие кавычки): " ``` "
Как минимум, задача записать в json-поле типа BaseType объект типа ChildType, а затем десериализовать значение именно последнего типа, не решается "из коробки" в EF
Это будет не две строчки кода, если вам нужно поле типа List<object>, в котором значения типа int, double и decimal, инициализированные литералом "1", будут десериализованы при получении из бд как int , double и decimal, а не как int64 все трое. Или если вам нужно, чтобы поле типа BaseType десериализовалось как ChildType, если туда был записан объект такого типа.
Ну, во-первых, нет, без fluent api, на данный момент, в .net 7, невозможно настроить конвертацию в json. Во-вторых, придется постараться, чтобы json-поля поддерживали полиморфизм с точным преобразованием типов.
Во-первых, это более простая в использовании, более наглядная и удобная альтернатива HasConversation(), вообще не требующая использовать Fluent API. Во вторых, тут доступна строгая сериализация, в том числе позволяющая поддерживать полиморфизм для сложных пользовательских классов, а не только базовых типов. Конечно, можно это реализовать и через Fluent API, но тогда будет еще больше лишнего кода, а тут готовый удобный функционал.