Как сопоставить объект JSON из запроса SQL Server с полем модели класса C# в ASP.NET CoreC#

Место общения программистов C#
Ответить
Anonymous
 Как сопоставить объект JSON из запроса SQL Server с полем модели класса C# в ASP.NET Core

Сообщение Anonymous »

Я пытаюсь сопоставить столбец JSON в таблице базы данных с моей моделью, но не знаю, как это сделать.
Из других сообщений я вижу это есть примеры того, как сопоставить отдельные свойства в JSON с полем, но я хочу сопоставить весь объект JSON, который я получаю обратно из запроса SQL, в поле модели .
JSON из запроса SQL Server:

Код: Выделить всё

{
"data": {
"name": "Hello",
"aliases": ["world", "hi"],
"address": {
"main": "123 street"
{
}
}

Код: Выделить всё

// DB Model

public class MyDBModel
{
int Id {get; set;}
string MyJsonColumn {get; set;} = string.Empty;
}

Код: Выделить всё

//Client models to map the JSON
public class ClientModel
{
public Data data { get; set; } = null;
}

public class Data
{
string name { get; set; } = string.Empty;
string[] aliases { get; set; } = null;
Address address { get; set; } = null;
}

public class Address
{
string main { get; set; } = string.Empty;
}
Я хочу сопоставить приведенный выше JSON с классами моей модели.
****************** ОБНОВЛЕНИЕ *****************
Когда я пытаюсь отобразить поведение модели

Код: Выделить всё

var response = _sqlConnection.Query(sql);

return new ClientModel
{
Id = response.Id,
data = JsonSerializer.Deserialize(response.MyJsonColumn );
}
< /code>
Я получаю ошибку < /p>

не может неявно преобразовать тип clientModel в my.db.models.namespace.data < / p>

Почему речь идет о клиентской модели Data
?

Подробнее здесь: https://stackoverflow.com/questions/784 ... field-in-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»