ASP.NET Core 8 Web API/C#/Dapper/Postgresql Сохранение и обслуживание столбца JSONB, не касаясь столбцаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core 8 Web API/C#/Dapper/Postgresql Сохранение и обслуживание столбца JSONB, не касаясь столбца

Сообщение Anonymous »

Я написал веб-API ASP.NET Core 8.0 для веб-сайта внешнего интерфейса Angular с Node Express и Postgresql. 2 года назад у нас была привычка из этого проекта с программистами внешнего интерфейса и моим веб-API. Я даю несколько столбцов в базе данных, которые я никогда не использовал, и фронтендеры используют этот столбец для сохранения в нем своих настроек. Я использую Dapper, потому что мне нравится иметь в руках SQL вместо EF Core.
Сейчас мы пишем новый проект с веб-API ASP.NET Core 8 с Angular, но я есть проблемы со столбцами json.
Давайте приведем пример
База данных:

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

create table users
(
user_id bigserial,
username character varying[50],
fullname character varying[200],
password character varying[300],
salt character varying[300],
frontends_field jsonb,
adress_data jsonb
)

public class User
{
[Required]
public long? User_Id { get; set; }

[Required]
[MaxLength(50)]
public string UserName { get; set; } = string.Empty;

[Required]
[MaxLength(200)]
public string FullName { get; set; } = string.Empty;

[Required]
[MaxLength(300)]
public string Password { get; set; } = string.Empty;

[MaxLength(300)]
public string Salt { get; set; } = string.Empty;

public ??WHICH_TYPE?? frontends_field { get; set; }
public ??WHICH_TYPE?? adress_data { get; set; }
}

public class Adress_Data
{
public string? adress_name { get; set; }
public string? streetinfo { get; set; }
public string? buildinginfo { get; set; }
public string? city { get; set; }
}
В контроллере я сохраняю эти данные вот так

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

[HttpPost]
public async Task PostUser([FromBody] User req)
{
try
{
using var MyCnt = _db.GetConnection(); //Npgsqlconnection here
{
string MySql = """
INSERT INTO public.users (username, fullname, password, salt, frontends_field, adress_data)
VALUES (@username, @fullname, @password, @salt, @frontends_field, @adress_data)
returning *;
""";
var result = await MyCnt.QueryFirstOrDefaultAsync(MySql,req);

return Ok(result);
}
}
catch (Exception ex)
{
return BadRequest(ex);
}
}
Пример JSON для запроса

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

{
"username" : "johndoe",
"fullname" : "John DOE",
"password" : "Please_123",
"salt" "asdşfmi

Подробнее здесь: [url]https://stackoverflow.com/questions/78812332/asp-net-core-8-web-api-c-sharp-dapper-postgresql-jsonb-column-saving-and-s[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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