Как создать общий API CRUD в ядре .NET с использованием DAPPER и POSTGRESQL?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать общий API CRUD в ядре .NET с использованием DAPPER и POSTGRESQL?

Сообщение Anonymous »

Я пытаюсь построить общий API CRUD в ядре .NET, используя Dapper и PostgreSQL. Я следовал нескольким учебным пособиям и придумал следующую реализацию, но я столкнулся с некоторыми проблемами и хотел бы узнать, есть ли лучший способ структурировать это. < /P>
моя реализация < /h3>

[*] Контекст базы данных: < /strong> < /p>
public class DatabaseContext
{
private readonly IConfiguration _configuration;

public DatabaseContext(IConfiguration configuration)
{
_configuration = configuration;
}

public IDbConnection CreateConnection()
{
return new NpgsqlConnection(_configuration.GetConnectionString("DefaultConnection"));
}
}



[*] generic Repository: [/b]

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

public class Repository : IRepository where T : class
{
private readonly DatabaseContext _context;

public Repository(DatabaseContext context)
{
_context = context;
}

public async Task GetAllAsync()
{
using (var connection = _context.CreateConnection())
{
var tableName = typeof(T).Name;
var query = $"SELECT * FROM {tableName}";
return await connection.QueryAsync(query);
}
}

// Other CRUD methods...
}
[*] универсальный контроллер:

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

[Route("api/[controller]")]
[ApiController]
public class GenericController : ControllerBase where T : class
{
private readonly IRepository _repository;

public GenericController(IRepository repository)
{
_repository = repository;
}

[HttpGet]
public async Task GetAll()
{
return Ok(await _repository.GetAllAsync());
}

// Other CRUD endpoints...
}
конкретный объект и контроллер:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}

[Route("api/[controller]")]
[ApiController]
public class ProductsController : GenericController
{
public ProductsController(IRepository repository) : base(repository)
{
}
}
< /code>
< /li>
< /ol>
проблема и вопрос < /h3>

Имя таблицы. Однако это предполагает, что имя таблицы точно соответствует имени класса. Что, если имя таблицы отличается? Как я могу справиться с этим динамически? /> Любые предложения или улучшения будут высоко оценены! < /p>

Подробнее здесь: https://stackoverflow.com/questions/795 ... postgresql
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ASP.NET Core 8 Web API/C#/Dapper/Postgresql Сохранение и обслуживание столбца JSONB, не касаясь столбца
    Anonymous » » в форуме C#
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Как использовать общий класс dto для всех конечных точек API в ядре .net [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Общий рисунок репозитория для ядра .NET с DAPPER
    Anonymous » » в форуме C#
    0 Ответы
    56 Просмотры
    Последнее сообщение Anonymous
  • Как сделать запрос PUT из ядра ASP.NET mvc в веб-API в ядре asp.net?
    Anonymous » » в форуме C#
    0 Ответы
    94 Просмотры
    Последнее сообщение Anonymous
  • Как отправить вложение PDF через SOAP API в ядре .NET Framework 4.8/Net с помощью HttpClient?
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

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